我们可以说"活动"在节奏或时间上是容错的吗



我有两个工人,分别命名为w1和w2

W1主持活动A1。

如果w1宕机,是否会在w2上自动创建它来处理服务器故障转移?

我试过了,但它显示ActivityTimeOut错误,工作流失败。

难道我们没有任何选择来处理这样的故障转移吗?

在这种情况下,活动不会超时。由于工人崩溃,它没有在预期时间内响应cadence服务。这是将其称为ActivityTimeOut的正确方法吗?相反,我们不能用WorkerCrash这样的方式来解决它吗?

是的,但您需要设置正确的超时和重试选项:请参阅概念文档

以及Java客户端文档和Golang文档

默认情况下,Cadence不为活动提供RetryOptions。因此,如果超时或失败,工作流将收到失败,如果不处理,工作流将失败。如果你想重试一个活动,你必须在调用它时提供RetryOptions

Temporal默认情况下为任何活动提供RetryOption。因此默认情况下会重试。

在这一点上,Cadence和Temporal都不会直接对工人崩溃做出反应。它们依赖于活动超时来检测任何此类故障。因此,在调用活动时,指定正确的StartToClose超时至关重要。

最新更新