我有使用经验 Activiti的 BPMN 2.0引擎,用于处理网络节点基础结构中的高性能和高吞吐量数据传输过程。基本任务是允许配置和监视此类传输过程并控制每个网络节点(即请求node1通过特定传输层将数据文件发送到node2)。
一次可能有数千个进程在运行,每天总共有数十或数十万个进程。
有许多不同的流程定义,但不一定要求系统的操作员可以创建自定义工作流程。因此,BPM引擎本身的主要用例是健壮,可扩展,并允许监控每个流程。
最终它基本上起了作用,但我们从该项目中学到的是BPMN平台,或者更确切地说是Activiti引擎,并不是这种高吞吐量系统的最佳选择。
主要的挑战是任务执行优先级,数据库锁定,执行重试,以确定有关BPM本身的少数几个。所以我们必须开发这些的自定义处理,例如:
我不知道其他BPMN引擎是否更适合这种情况,因为BPMN主要用于涉及用户交互的长期业务任务,其中性能可能与我们的情况不同。