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。