我有两个名为 w1 和 w2 的工人
W1 主持活动 A1。
如果 w1 出现故障,是否会在 w2 上自动创建以处理服务器故障转移?
我试过了,但它说 ActivityTimeOut 错误并且工作流失败。
难道我们没有任何选择来处理这样的故障转移吗?
在这种情况下,活动不会超时。由于工人崩溃,它没有在预期的时间内响应节奏服务。这是将其称为 ActivityTimeOut 的正确方法吗?相反,我们不能像 WorkerCrash 那样解决它吗?
我有两个名为 w1 和 w2 的工人
W1 主持活动 A1。
如果 w1 出现故障,是否会在 w2 上自动创建以处理服务器故障转移?
我试过了,但它说 ActivityTimeOut 错误并且工作流失败。
难道我们没有任何选择来处理这样的故障转移吗?
在这种情况下,活动不会超时。由于工人崩溃,它没有在预期的时间内响应节奏服务。这是将其称为 ActivityTimeOut 的正确方法吗?相反,我们不能像 WorkerCrash 那样解决它吗?
默认情况下,Cadence 不为活动提供 RetryOptions。因此,如果超时或失败,工作流将收到失败,如果不处理则会失败。如果你想重试一个活动,你必须在调用它时提供 RetryOptions 。
Temporal 默认为任何活动提供 RetryOption。所以默认会重试。
此时,Cadence 和 Temporal 都不会直接对 worker 崩溃做出反应。他们依靠活动超时来检测任何此类故障。StartToClose
因此,在调用活动时指定正确的超时时间是必不可少的。
是的,但您需要设置正确的超时和重试选项:请参阅概念文档