dram.me

BPMN中周期性更新任务建模

在BPMN流程设计中,有些任务数据需要进行周期性地后台更新(例如订票系统中的余票信息),这种模型有多种方式可以处理:

  1. 结合定时器和脚本任务构建循环,在固定时间间隔间执行脚本以更新数据;

  2. 基于事件触发,由用户发起signal,触发数据更新;

  3. 基于同步网关同时启动主流程任务以及数据更新流程任务(包括定时器和基于Human Task的触发器),用户可选择在合适的时候触发数据更新。

第一种方案比较明显的一个弊端是大部分时候更新是无用的,后两种方案可以在用户需要时才更新数据。第二种方案依赖于BPM系统支持由用户发送信号,相较之下,第三种方案更具有通用性。

在使用第三种方案时,建议使用子流程封装,并在相关任务完成时利用终止结束事件(Terminal End Event)终止该子进程中的所有任务,这样可以确保同时终止用于更新数据的任务。