# 中间等待

在业务流程执行过程中,等待机制是处理异步操作和协调多任务的关键功能。本文将详细介绍BPMN2中三种常见的等待事件类型及其应用场景。

# 1. 信号等待事件(Signal Intermediate Event)

# 应用场景

  • 电商订单等待用户签收
  • 物流运输等待到达通知
  • 服务请求等待第三方系统回调

# 配置步骤

  1. 在流程中添加中间事件节点
  2. 设置为信号中间捕获事件
  3. 配置信号名称和信号key(如用户签收和订单ID)

信号等待事件流程图 ▲ 信号等待事件流程示例

# 触发机制

当系统收到匹配信号时继续流程。

控制台命令触发: signal 用户签收 -key ORDER123

# 2. 定时等待事件(Timer Intermediate Event)

# 应用场景

  • 合同到期前提醒
  • 定期报告生成
  • 时效性业务预警(如船运前提醒)

# 配置方法

  1. 添加定时中间捕获事件
  2. 设置触发时间(支持绝对时间和相对时间)
  3. 可配置提前量(如提前30分钟)

定时等待事件流程图 ▲ 定时等待事件流程示例

# 3. 消息等待事件(Message Intermediate Event)

# 典型应用

  • 并行审批中的条件依赖
  • 跨系统流程协同
  • 审批链动态调整

# 配置方法

  1. 在分流网关后面拖3个节点,分别是:部长审批、总监审批、财务审批并行审批
  2. 在财务审批后添加中间事件节点,设置为消息中间抛出时间
  3. 配置消息名称(如财务已批) 4.在总监审批前添加中间事件节点,设为消息中间捕获事件

消息等待事件流程图 ▲ 消息等待事件流程示例

# 4. 等待事件对比表

类型 触发条件 数据传递 适用场景
信号等待 外部系统发信号 支持 用户操作/系统事件触发
定时等待 到达指定时间 不支持 时效性任务
消息等待 接收特定消息 支持 流程间协调/审批依赖

# 5. 最佳实践建议

  1. 关键业务等待应设置超时机制:
  2. 消息等待应使用业务主键作为消息key:
  3. 复杂等待场景可结合事件子流程实现更精细的控制

掌握这些等待事件的使用方法,可以构建出更健壮、更灵活的业务流程,有效处理现实业务中的各种异步和协同场景。