如何从子工作流程重新启动父工作流程,或者如何在父工作流程本身内重新触发? -Cadence / Temporal

时间:2020-07-01 04:23:07

标签: cadence-workflow temporal-workflow

我有一个具有多个活动1,2,3 ... 6的工作流程,如果活动3后因某个特定例外而导致我的工作流程失败,我正计划启动一个子工作流程,该工作流程最终将解决该异常。之后,我想重试父工作流程以完成整个流程。

我可以在子工作流程中使用什么来实现上述方案?

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

1 个答案:

答案 0 :(得分:1)

我建议不要使工作流程失败,但要实现补偿和重试逻辑。您可以这样写:

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

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