我有一个包含多个活动 1、2、3...6 的工作流,如果我的工作流在活动 3 之后因一个特定异常而失败,我计划启动一个最终修复异常的子工作流。之后,我想重试父工作流程以完成整个流程。
我可以在子工作流程中使用什么来实现上述场景?
我尝试查看 Workflow 界面,该界面ContinueAsNew
会将其创建为新的工作流并再次执行所有活动。
我有一个包含多个活动 1、2、3...6 的工作流,如果我的工作流在活动 3 之后因一个特定异常而失败,我计划启动一个最终修复异常的子工作流。之后,我想重试父工作流程以完成整个流程。
我可以在子工作流程中使用什么来实现上述场景?
我尝试查看 Workflow 界面,该界面ContinueAsNew
会将其创建为新的工作流并再次执行所有活动。
我建议不要让工作流程失败,而是将补偿和重试逻辑作为其中的一部分。您可以编写如下内容:
activities.a1(...);
activities.a2(...);
try {
activities.a3(...);
} catch (MyParticularException e) {
childWorklfow.fixExceptionIn3(...);
}
activities.a4(...);
activities.a5(...);
activities.a6(...);
activities.a7(...);
重试整个工作流的想法来自同步请求-回复世界,对工作流几乎没有意义。