全部文档
文档中心数据流3.0场景案例0504-批量终止长时间未完成的数据流实例

0504-批量终止长时间未完成的数据流实例

DEMO:打开主流程 · 打开子流程

数据流可能因外部系统无响应、节点异常或资源不足而长期停留在队列中或进行中。这些实例持续占用并发资源,也会影响后续调度,因此需要按统一规则识别并终止超时实例。

主流程先找出当前仍有运行中实例的数据流元素,再批量调用子流程。子流程查询每个元素的未完成实例,根据允许的最长运行时间筛选超时记录,最后统一调用终止接口。

Copy
查询有运行中实例的数据流
  → 按元素批量调用子流程
  → 查询 QUEUED / STARTED 实例
  → 筛选超时实例
  → 批量终止
  1. 筛选需要检查的数据流

    主流程调用 /flow/list,筛选 inProcessCount > 0 的元素,并将元素信息传给单元素终止子流程。

  2. 查询未完成实例

    子流程调用 /monitor/runs,只查询 QUEUEDSTARTED 状态。元素编码和文件夹 ID 均由主流程传入。

  3. 判断是否超时

    根据实例创建时间或开始时间与业务允许时长比较,只保留真正需要终止的实例。本 DEMO 使用“创建时间早于前一天”作为示例,实际项目应改为各数据流自己的超时标准。

  4. 调用终止接口

    提取筛选结果中的 runId,调用 /run/terminate。没有符合条件的实例时直接结束,不调用接口。

配置完成后,超时实例会变为已终止,未达到超时条件的实例不受影响。终止可能留下中间业务数据,因此设置规则前必须确认相关流程支持中断、补偿或重跑。

回到顶部

咨询热线

400-821-9199