可以使用activiti提供的定时器事件和JavaDelegate来实现循环调用外部系统接口,直到接口返回True。

  1. 首先,在BPMN流程定义文件中添加一个TimerCatchEvent节点,设置定时器事件的时间间隔和重复次数。

  2. 在TimerCatchEvent节点的执行逻辑中,通过JavaDelegate调用外部系统接口,获取接口返回值。

  3. 如果接口返回False,则继续等待下一次定时器事件触发后再次调用接口;如果接口返回True,则流程可以继续往下执行。

  4. 在JavaDelegate中,可以使用HttpClient等工具来调用外部系统接口,并根据接口返回值进行相应的处理。

下面是一个简单的示例代码:

public class ExternalSystemDelegate implements JavaDelegate {

    public void execute(DelegateExecution execution) throws Exception {
        boolean result = false;
        while (!result) {
            // 调用外部系统接口,并获取返回值
            result = callExternalSystem();
            // 如果返回值为false,则等待下一次定时器事件触发后再次调用接口
            if (!result) {
                Thread.sleep(1000);
            }
        }
    }

    private boolean callExternalSystem() {
        // 使用HttpClient等工具调用外部系统接口,并根据接口返回值进行相应的处理
        ...
    }
}
``
activiti 定时执行任务TimerCatchEvent 循环调用外部系统接口直到外部接口返回True流程才能走到下一步

原文地址: https://www.cveoy.top/t/topic/fsGs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录