FoxBPM 系列之-自动调度浅析

        目前FoxBPM流程引擎有四种类型的调度工作,全部由Quartz实现,分别是流程实例自动启动、连接器自动执行、边界事件自动执行、中间事件自动执行。根据BPMN2.0官方定义目前也只有这四种自动调度。其中流程实例启动、连接器执行和边界事件执行的调度工作同时支持日期时间定时启动和时间间隔性启动,而中间事件执行目前只支持日期时间定时启动。

 

       Quartz组件引擎依赖一套松耦合的线程池管理部件来管理线程环境,它也有自己的一套持久化环境和数据库模型,所以它具有很好的可伸缩性和可集群性,也为我们工作流程引擎模块的集群添加支持。

 

 

        流程定义中四种调度器的添加大部分工作,都已经由Eclipse设计器完成,包括事件时间定义的添加、连接器的定时执行选项、触发器表达式编辑。需要注意的是流程引擎系统的表达式执行引擎由Groovy实现,所以添加定时任务时候,触发器表达式必须符合Groovy规范。在新规流程定义时其中涉及到事件时间定义的都可以在工具箱中找到相关定义,包括边界事件时间定义、中间捕获事件时间定义、时间启动,连接器时间定义可以动态选择,所有的时间表达式编辑都在属性页中完成。

 

 

事件时间定义相关操作如下所示:

 

1、从工具箱Palette选择时间节点,包括边界时间节点、捕获时间节点、时间开始

 

 

2、在流程定义编辑器中定义时间节点,如下图所示从左到右一次为时间启动、中间事件时间定义、边界事件时间定义:

 

 


 3、选中流程定义中的时间节点,时间定义如下图所示:

 (其中TimeDate定义日期时间表达式、TimeDuration定义Cron表达式)



 

 

4、触发器时间表达定义如下(任何Groovy支持的表达式都可以、如果你是流程引擎开发人员你也可以直接写一个获取TriggerList的静态方法):



 

 

流程定义时定时任务相关操作就这些,流程定义好之后直接发布,就可以看到相关调度工作的运行的效果。

如有任务疑问请直接咨询作者([email protected]