首页 > 代码库 > 使用Activiti内部Api手动创建作业(Job)
使用Activiti内部Api手动创建作业(Job)
很多时候,我们想像Activiti定时开始事件一样,加入一些自己的定时流程。但定时开始事件有很大的局限性,比如时间、循环次数、循环间隔是必须要指定的,这对于一些根据实际状况,计算时间并启动的流程是无法处理的。
通过一系列的源码分析,最终找到了手动建立Job的方式方法,代码如下:
该代码片段的作用,其实仅仅是在act_ru_job表中增加一条记录,但当Activiti配置中,启用Job执行器(代码见下),Activiti流程引擎便会在指定的时间,触发指定的流程。
至此,我们可以手动的在代码的控制下,在不确定的时间(程序计算)点,启动任意(指定key即可)的流程,大大方便的流程执行中的自定义性。
通过一系列的源码分析,最终找到了手动建立Job的方式方法,代码如下:
// 时间计算 Date now = new Date(); // delay为相较当前时间,延时的时间变量 Date target = new Date(now.getTime() + delay * 60 * 1000); // 时间事件声明 TimerEntity timer = new TimerEntity(); timer.setDuedate(target); timer.setExclusive(true); timer.setJobHandlerConfiguration("customProcessKey");// 这里存入需要启动的流程key timer.setJobHandlerType(TimerStartEventJobHandler.TYPE); // 保存作业事件 Context.getCommandContext().getJobEntityManager().schedule(timer);
该代码片段的作用,其实仅仅是在act_ru_job表中增加一条记录,但当Activiti配置中,启用Job执行器(代码见下),Activiti流程引擎便会在指定的时间,触发指定的流程。
<property name="jobExecutorActivate" value=http://www.mamicode.com/"true" />
至此,我们可以手动的在代码的控制下,在不确定的时间(程序计算)点,启动任意(指定key即可)的流程,大大方便的流程执行中的自定义性。
使用Activiti内部Api手动创建作业(Job)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。