【发布时间】:2016-01-26 05:57:55
【问题描述】:
我遇到了异步工作流的问题。 我有这个设计:
工作流程1:
start -> ScriptActivity1 (正在抛出 NullPointerException 来测试错误处理)-> end
工作流程2:
start -> CallActivity (调用workflow1) -> end
我看到如果我将工作流部署为异步,如果 workflow1 失败,workflow2 永远不会结束,但是在部署它们时不会发生这种情况同步。
另外,如果我只执行 workflow1,它会无法正确显示相应的异常。
有谁知道如何处理这个问题?
【问题讨论】:
-
您在某处处理 NPE 吗?如果不是,这是您有异步任务时的预期行为。当 Activiti 从一个活动中得到一个技术异常(任何不是 BpmnError 的子类)时,它会重试几次。达到重试限制后,引擎放弃,但相应的作业保留在控制表中 - 至少对于“经典”作业执行器而言。假设是生产中的技术错误通常是由临时问题引起的,例如外部服务不可用。您可以使用 API 或数据库更新重新启动失败的作业。