You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Flowable中为脚本/HTTP任务加延迟及处理循环轮询场景?

基于Flowable BPMN实现循环HTTP计数检查的解决方案

方案一:定时器中间事件+排他网关+HTTP任务(定时轮询模式)

这是BPMN原生的循环实现方式,适合无外部通知机制的场景:

  • 流程结构:启动事件 → HTTP任务(检查计数) → 排他网关 → (达标)结束事件;(不达标)定时器中间事件 → 回到HTTP任务
  • HTTP任务配置:在BPMN中配置HTTP任务,调用检查计数的接口(可由包装服务提供),将接口返回的计数结果映射到流程变量(如count)
  • 排他网关条件:设置两个流出分支,分支1条件为${count >= targetCount}(达标时走向结束),分支2为默认分支(不达标时走向定时器)
  • 定时器配置:使用时间周期定时器,比如PT1H(每小时执行一次)或PT6H(每6小时执行一次),根据业务需求调整间隔,避免频繁轮询消耗资源
  • 流程变量初始化:启动流程时通过Flowable REST API传入目标计数targetCount,作为判断依据

方案二:消息中间事件+外部触发(事件驱动模式)

如果外部系统可在计数变化时主动通知,该方式更高效,避免无效轮询:

  • 流程结构:启动事件 → HTTP任务(检查计数) → 排他网关 → (达标)结束事件;(不达标)消息捕获中间事件 → 回到HTTP任务
  • 消息定义:在BPMN中定义全局消息(如countUpdated),消息捕获事件关联该消息
  • HTTP任务逻辑:调用检查接口并将结果存入流程变量,通过排他网关判断是否达标
  • 外部触发:当外部系统检测到计数变化时,调用Flowable REST API的POST /runtime/messages接口,指定流程实例ID和消息名称countUpdated,触发流程从消息捕获事件继续执行,再次进入HTTP检查
  • 优势:流程等待期间处于挂起状态,不占用定时调度资源,适合耗时数天的场景

关键配置注意事项

  • HTTP任务参数映射:确保HTTP任务的响应结果正确映射到流程变量,比如在Flowable HTTP任务配置中设置responseVariable为count,将接口返回的计数存入变量
  • 流程变量持久化:Flowable默认持久化流程变量,需确保变量类型正确(如数字类型)
  • REST API调用规范:包装服务调用Flowable REST API时需携带正确认证信息,启动流程时传入targetCount变量,触发消息时指定准确的流程实例ID

内容的提问来源于stack exchange,提问作者Pent Terry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 23:55:22