有没有办法从错误的活动中执行补偿

时间:2018-10-23 19:04:02

标签: masstransit saga routing-slip

假设我已经定义了路由清单活动。在Execute方法中,我想进行几个异步服务调用。假设有3个服务呼叫。其中两个成功,一个失败。然后,我想执行此活动的补偿动作,以补偿两个成功的服务调用带来的更改。从我看到的补偿仅适用于先前的活动,当其中存在异常时,当前的活动补偿将没有机会被调用。有办法解决还是我应该改变方法?

我想达到类似enter image description here 使用MassTransit。

1 个答案:

答案 0 :(得分:0)

您应该具有三个单独的活动,并按顺序执行它们,以便当它们分别成功执行时,将它们添加到日志中。如果一项活动失败,以前的活动将得到补偿。

通过在一个活动中同时进行所有三个呼叫,您将避免拥有路由清单和活动的全部原因。