当前位置: 首页 > 知识库问答 >
问题:

如何从子工作流重新启动父工作流,也可以在父工作流本身中重新触发?- 节奏/时间

终翔
2023-03-14

我有一个包含多个活动的工作流1,2,3…6,如果我的工作流在活动3之后因某个特定异常而失败,我计划启动一个子工作流,最终修复该异常。之后,我想重试父工作流以完成完整的流程。

我可以在子工作流中使用什么来实现上述场景?

我尝试查看具有< code>ContinueAsNew的工作流界面,该界面将创建一个新的工作流,并再次执行所有活动。

共有1个答案

方飞翼
2023-03-14

我建议不要让工作流失败,而是实现补偿和重试逻辑作为其中的一部分。你可以这样写:

activities.a1(...);
activities.a2(...);
try {
   activities.a3(...);
} catch (MyParticularException e) {
   childWorklfow.fixExceptionIn3(...);
}
activities.a4(...);
activities.a5(...);
activities.a6(...);
activities.a7(...);

重试整个工作流的想法来自同步请求-回复世界,几乎对工作流没有意义。

 类似资料:
  • temporal.io如何与cadenceworkflow.io?如果根据节奏工作流服务启动一个新项目,应该使用什么?

  • 嗨,我有一个包含2个活动的工作流。场景。一个活动在执行第二个活动时完成,我需要与之通信的URL链接已关闭。现在,当该URL启动时,工作流超时。那么我该如何重启超时的工作流呢? 这个问题的灵感来自一个Github问题。

  • 每个工作流都应在单独的工作流类中实现? 是否建议实现一个通用工作流类,在该类中,我们将使用传递给工作流的参数调用活动和触发计时器? 在我们的用例中,我们将从UI创建工作流,它将由最终用户创建。所以我们不能一开始就定义我们的工作流程。 这是推荐的方法吗?

  • 可以运行不需要连接到cadence服务器的本地活动。是否有适当的方式在本地运行工作流,以防发生cadence中断?我正在使用Go客户端。

  • 这可以被认为是在节奏工作流的循环中调用相同活动的后续问题:在活动迭代的情况下,工作流如何恢复?是继续调用第i个活动(跳过已经调用的活动)还是从0重新开始?如果是这样,如何编写工作流以跳过调用的活动(0-'k')?

  • 寻找有关以下用例的建议或解决方案 应用程序接收按功能键(如员工id)标识的更改时间排序的消息。功能键可以有多条消息 每条消息都会触发一个工作流。如果员工有待定工作流,则希望将新消息排队,直到待定工作流完成 是否有任何方法可以在节奏中对消息重新排序,以将它们作为由消息中的功能键标识的组进行处理?