当我们多次触发 SWF Flows @Execute 方法时会发生什么?

What happens when we trigger the SWF Flows @Execute method multiple times?

我们有一个用例,我们在其中启动工作流(通过调用 @Execute 方法)并为后续 activity 安排一个计时器。现在,这个工作流的触发是基于 API 调用,可以被客户端多次触发。

  1. 想知道 SWF 流如何处理 @Execute 方法的多次调用。
  2. 它会创建多次执行吗?
  3. 或者是否会为同一工作流执行安排多个计时器时钟?

SWF 只允许每个 ID 执行一个打开的工作流。因此,如果工作流仍然 运行 再次调用 Execute 方法将 return WorkflowExecutionAlreadyStartedFault.

请注意,如果一个工作流已完成,即使对于相同的 ID,新的工作流也将开始。

temporal.io which is an open source version of SWF has an additional WorkflowIdReusePolicy 指定在已经完成工作流的情况下应该做什么。