使用上下文使用依赖函数/嵌套函数的最佳实践



假设我有一个go程序,它执行一个长时间运行的作业(通常作为一个go例程),其中有许多步骤,每一步都依赖于最后一步的完成,即

A -> B -> C -> D

一般来说,我这样做的方式是让A()在其函数结束时调用B(),以此类推。switch语句?但是我们怎么决定操作的顺序呢?

谢谢。

这是好的做法,即嵌套函数吗?是否有一种更清晰的方法来做到这一点,从而更容易在代码中阅读?我不太确定是否有其他方法。

如果我想在整个"链"中传递一个context.CancelFunc,以便我可以取消a和B之间或B和C之间的过程,等等,该怎么办?

这样做的一种方法是实现Pipeline模式,其中所有阶段都通过通道连接,如本文详细描述的那样https://go.dev/blog/pipelines

每个阶段有任意数量的入站和出站通道,除了第一阶段和最后阶段只有出站或入站通道,分别。第一阶段有时被称为源或源生产商;最后一个阶段,接收器或消费者。

相关内容

  • 没有找到相关文章