如何从子工作流重新启动父工作流,或者如何在父工作流本身内重新触发? - 节奏/时间

How can i restart a parent workflow from child workflow or can i re-trigger within the parent workflow itself? - Cadence/ Temporal

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

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

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

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

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

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