【发布时间】:2018-10-23 19:04:02
【问题描述】:
假设我已经定义了传送单活动。在 Execute 方法中,我想进行几个异步服务调用。让我们假设 3 个服务调用。其中两个成功,一个失败。然后我想执行此活动的补偿操作,以补偿两个成功的服务调用引入的更改。从我看到的补偿仅针对以前的活动运行,当前活动补偿在其中某处出现异常时没有机会被调用。有没有办法处理它或者我应该改变方法?
【问题讨论】:
标签: masstransit saga routing-slip
假设我已经定义了传送单活动。在 Execute 方法中,我想进行几个异步服务调用。让我们假设 3 个服务调用。其中两个成功,一个失败。然后我想执行此活动的补偿操作,以补偿两个成功的服务调用引入的更改。从我看到的补偿仅针对以前的活动运行,当前活动补偿在其中某处出现异常时没有机会被调用。有没有办法处理它或者我应该改变方法?
【问题讨论】:
标签: masstransit saga routing-slip
您应该拥有三个独立的活动,并按顺序执行它们,这样当它们单独成功时,它们就会被添加到日志中。如果某项活动失败,将补偿之前的活动。
通过在单个活动中进行所有三个调用,您将违背具有路由单和活动的全部原因。
【讨论】: