如何从传奇中执行路由单?

时间:2017-10-03 11:13:55

标签: masstransit saga routing-slip

我们正在使用传奇来模拟工作流程。此工作流等待事件进入并根据事件执行某些工作。在某些情况下,我们需要一个接一个地执行多个任务(链接。然后是方法),但如果一个失败,我们需要补偿整个链。路由单似乎合适,但我不确定是否可以从传奇中的Then方法执行这样的路由单?

1 个答案:

答案 0 :(得分:1)

实际上,从状态机传奇中的行为执行路由传递是可能的,而且非常普遍。但是,建议将命令从传奇发送给普通消费者,然后建立并执行传送单。

然后,单独的状态机可以监控路由单的进度,使用路由滑动事件来向前移动状态。一旦完成路由单,就可以通过路由滑动状态机产生业务事件,该传输滑动状态机由原始传奇观察到前进(在成功的情况下)或转换到故障状态(如果路由滑动故障)

通过为路由单提供单独的状态机,然后可以添加诸如计划重试之类的内容,这可以增加由路由单活动建模的业务事务的弹性。它还将路由单的问题分开,并仅使用业务事件保持原始传奇。

还有一个很好的演示: https://github.com/phatboyg/Demo-Registration