Camunda BPM 外部任务吞下了它的重试:如何反应例如使用条件流?

问题描述

我想定期查询外部系统(在我的情况下为 DNS 服务器)以获取一些信息,直至达到某个最大重试次数。如果执行此数量的重试没有成功,如何反应?

现在有关我迄今为止编程的设置的更多详细信息:

在 Camunda BPM 引擎中,我配置了一个外部任务,它的主题由 Java 程序订阅。该程序执行检查(针对 DNS 服务器)。如果此检查成功,则任务被标记为已完成:

externalTaskService.complete(externalTask);

否则设置递减重试计数器失败(连同重试超时):

externalTaskService.handleFailure(externalTask,"Failure","[More failure details]",decrementedRetries,RETRY_TIMEOUT_MILLIS);

在吞下所有重试 (decrementedRetries == 0) 后,外部任务在 Camunda BPM 引擎中用红色标志标记,说明失败任务执行的数量等。

现在我想模拟另一个任务来应对这种情况(补偿步骤的执行)。您建议如何模拟触发此任务?

我尝试应用从第一个任务指向补偿第二个任务的条件流,但没有找到任何提示如何配置此条件流实例以对带有 {{ 的任务实例做出反应1}}。

谢谢

基督徒

解决方法

事件(“红色标志”)表示技术错误,一旦根本问题得到解决,可以通过增加重试次数来解决。

在处理任务过程中发生的应该通过流程模型处理的问题可以用数据或事件来处理,例如通过 BPMN 错误或升级事件进行通信。

多种选择: