Rebus 传奇在多个处理程序之间分裂
Rebus saga split among multiple handlers
Rebus saga 能否拆分为多个处理程序 classes?
我有一个 Rebus saga 工作流,它由许多消息类型启动,并且仅由两种消息类型完成。
我不想让一个 class 实现所有不同的 IAmInitiatedBy<T>
和 IHandleMessage<T>
,而是希望将它们分成一个 class 来启动工作流.还有一个 class 处理完成工作流程的消息。
因此,如果有任何新的要求也可以启动工作流,我只需创建一个新的处理程序,而不是更新现有的处理程序。
这是 Rebus Sagas 的有效用例吗?将处理程序拆分为多个 classes,所有这些都在相同的 SagaData 类型上工作。
对此的初步测试似乎有效,但我们现有的工作流单元测试使用的是 SagaFixture,我无法跨多个装置协同工作。
它应该工作得很好,但正如您正确发现的那样,SagaFixture
并不是真正适合提供多种 saga 处理程序类型。
如果您有兴趣提供帮助,我建议您 fork Rebus.TestHelpers 存储库。我很乐意帮助您提交 PR。
Rebus saga 能否拆分为多个处理程序 classes?
我有一个 Rebus saga 工作流,它由许多消息类型启动,并且仅由两种消息类型完成。
我不想让一个 class 实现所有不同的 IAmInitiatedBy<T>
和 IHandleMessage<T>
,而是希望将它们分成一个 class 来启动工作流.还有一个 class 处理完成工作流程的消息。
因此,如果有任何新的要求也可以启动工作流,我只需创建一个新的处理程序,而不是更新现有的处理程序。
这是 Rebus Sagas 的有效用例吗?将处理程序拆分为多个 classes,所有这些都在相同的 SagaData 类型上工作。
对此的初步测试似乎有效,但我们现有的工作流单元测试使用的是 SagaFixture,我无法跨多个装置协同工作。
它应该工作得很好,但正如您正确发现的那样,SagaFixture
并不是真正适合提供多种 saga 处理程序类型。
如果您有兴趣提供帮助,我建议您 fork Rebus.TestHelpers 存储库。我很乐意帮助您提交 PR。