0

对于具有活动 A 的给定工作流,最大重试次数设置为 3,如果我有以下代码:

for (String type: types) {
    activityA.process(type);
}

在这种情况下,类型是 ["type1", "type2", "type3"] 因此,如果 activityA 成功处理 type1 并开始处理 type2 并由于某种原因失败,

  1. 每次运行一个类型时,activityA 的重试策略是否会应用,还是会在所有活动类型中重试 3 次?
  2. 如果工作流在执行 type2 时失败,工作流是从头开始重新处理 type1 还是从 type2 开始?
4

1 回答 1

0

对于 1. 重试策略将针对每个活动独立工作。所以每种类型都会有 3 次重试。

对于 2. 工作流失败是工作流执行的终止状态。除非您在启动工作流时指定重试策略,否则它不会自动重试。当工作流重试时。它将从一开始就开始。

另请参阅https://cadenceworkflow.io/docs/concepts/workflows/#workflow-retries

或者你问的是工人是否失败而不是工作流程?Cadence 对 worker 故障具有很强的容错性,工作流将自动从前一个 worker 死亡之前剩余的部分恢复运行。

另请参阅https://cadenceworkflow.io/docs/concepts/workflows/#state-recovery-and-determinism

于 2021-08-10T03:43:26.060 回答