我正在探索Cadence,并有一个关于故障恢复的问题。我知道工作流是容错的(保留工作流历史记录),以防工作流工作者失败。我无法为activity worker找到相同的保障。例如:假设一个活动对服务A进行RPC调用,这会更改一些远程对象状态;现在,让我们假设调用成功,但活动工作线程在通知Cadence服务之前丢失。在这种情况下,Cadence是否会将活动再次安排在新员工身上?
我理解如果服务A是幂等的,上述可能不是问题。如果服务A不是幂等的,那么在Cadence中处理上述场景的建议是什么?
发布于 2019-11-22 01:51:19
默认情况下,Cadence不会重试活动。因此,在活动工作线程失败的情况下,工作流将获得超时错误,并且可以根据其业务逻辑进行相应的处理。对于非幂等活动,通常通过运行补偿活动来完成。
Cadence还支持幂等活动的自动重试。它通过在调用活动时提供重试策略来实现。
https://stackoverflow.com/questions/58945308
复制相似问题