我有一个长期运行的过程,有四个步骤。S1、S2、S3、S4。S2 和 S3 顺序运行,S1 可以与 S2 并行运行。S4 可以与 S1、S2 和 S3 并行运行。
并非所有流程都需要运行所有步骤。有些只需要 S2 和 S3。其他人可能使用 S2 和 S4。
现在可以创建一个 saga 类并处理 S1、S2、S3 和 S4。消息和超时处理程序中的许多 If 语句。下个月有人需要实现 S5,与 S3 和 S4 并行运行。
可以为每个可能的流程创建一个 saga,但这是许多重复的代码。是否可以通过在不同的 saga 类中实现所需的步骤来为每个步骤创建一个类并组成每个不同的流程?
我是否应该构建 4 个 saga 并从外部控制器控制流程,并且只使用 saga 来执行所需的超时和持久性?