我有一个具有多个活动1,2,3 ... 6的工作流程,如果活动3后因某个特定例外而导致我的工作流程失败,我正计划启动一个子工作流程,该工作流程最终将解决该异常。之后,我想重试父工作流程以完成整个流程。
我可以在子工作流程中使用什么来实现上述方案?
我尝试查看具有ContinueAsNew
的工作流界面,该界面会将其创建为新工作流并再次执行所有活动。
答案 0 :(得分:1)
我建议不要使工作流程失败,但要实现补偿和重试逻辑。您可以这样写:
activities.a1(...);
activities.a2(...);
try {
activities.a3(...);
} catch (MyParticularException e) {
childWorklfow.fixExceptionIn3(...);
}
activities.a4(...);
activities.a5(...);
activities.a6(...);
activities.a7(...);
重试整个工作流的想法来自同步请求-响应世界,对于工作流几乎没有任何意义。