1

我正在探索 Cadence,并有一个关于故障恢复的问题。我了解工作流是容错的(保持工作流历史记录),以防工作流工作者失败。我无法为活动工作者找到相同的保证。示例:假设一个活动对服务 A 进行 RPC 调用,这会改变一些远程对象的状态;现在,让我们假设调用成功,但是在通知 Cadence 服务之前,activity worker 丢失了。在这种情况下,Cadence 会再次将活动安排在新员工身上吗?

我知道如果服务 A 是幂等的,上述可能不是问题。如果服务 A 不是幂等的,那么在 Cadence 中处理上述场景的建议是什么。

4

1 回答 1

0

默认情况下,Cadence 不会重试活动。因此,在活动工作者失败的情况下,工作流将出现超时错误,并且可以根据其业务逻辑进行相应的处理。对于非幂等活动,通常通过运行补偿活动来完成。

Cadence 还支持幂等活动的自动重试。它是通过在调用活动时提供重试策略来完成的。

于 2019-11-21T17:51:19.007 回答