【问题标题】:Resume workflow with cadence有节奏地恢复工作流程
【发布时间】:2020-10-06 10:25:44
【问题描述】:

在执行任务时,如果有失败想定义配置在一定间隔后重试并从失败的任务中恢复。是否可以实现恢复选项?

【问题讨论】:

  • 失败有多种类型。您想指定要处理的确切故障。例如,不需要显式处理大量故障,因为它们已经由 Cadence 本身处理。
  • 业务失败是场景之一。第二种情况是,由于下游不可用,任务/活动中的休息服务调用失败,希望在一定延迟后重试并恢复。

标签: cadence-workflow temporal-workflow


【解决方案1】:

在大多数情况下,业务失败不需要恢复选项。

常见的模式是不断重试,直到下游依赖可用。这是可能的,因为时间/节奏没有系统对活动重试的持续时间施加限制。如果下游系统可以关闭数天,则可以继续重试数天。

如果由于某种原因您想在一段时间后停止重试,然后在外部信号上恢复它,那么可以作为工作流逻辑的一部分实现,在某些类型的活动错误上工作流会休眠以恢复外部信号。

【讨论】:

  • 感谢 Maxim 的澄清。你能指出我提到的关于基于外部信号恢复工作流的第二点的任何例子吗?
  • 基本上工作流会阻塞,直到收到信号。确切的机制取决于 SDK。在 Java 中它会是 Workflow.await 调用或 Promise.get 在 Go 中它通常是在信号通道和计时器上选择的。
猜你喜欢
  • 2020-07-24
  • 1970-01-01
  • 1970-01-01
  • 2022-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-16
相关资源
最近更新 更多