我是靠谱客的博主 贪玩手机,最近开发中收集的这篇文章主要介绍springboot开发flowable定时任务,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

激活流程引擎的一步执行器:


@Bean
public ExtProcessEngineConfiguration engineConfiguration(){
ExtProcessEngineConfiguration engineConfiguration = new ExtProcessEngineConfiguration();
engineConfiguration.setDatabaseSchemaUpdate("true");
engineConfiguration.setDataSource(dataSource);
engineConfiguration.setTransactionManager(transactionManager);
engineConfiguration.setAsyncExecutorActivate(true);
List<SessionFactory> customSessionFactories = new ArrayList<>();
customSessionFactories.add(userEntityManagerFactory());
customSessionFactories.add(groupEntityManagerFactory());
customSessionFactories.add(membershipEntityManagerFactory());
engineConfiguration.setCustomSessionFactories(customSessionFactories);
return engineConfiguration;

流程图:

其中,定时任务节点类型是 Timer Intermediate Catch Event

 

设置Timer Definition Type,有3种类型:Date(指定某个时间点触发),Duration(延时一段时间触发),Cycle(循环触发直到某个时间点结束)

timeDate

<timerEventDefinition> <timeDate>2018-02-06T12:13:14</timeDate> </timerEventDefinition>

在确切的时间点执行

timeDuration

<timerEventDefinition> <timeDuration>P10D</timeDuration> </timerEventDefinition>

 从最后一个任务完成后10天开始执行

timeCycle

<timerEventDefinition>
  <timeCycle activiti:endDate="2018-02-25T16:42:11+00:00">R3/PT10H</timeCycle>
</timerEventDefinition>

或者变量形式:

<timerEventDefinition>
  <timeCycle>R3/PT10H/${EndDate}</timeCycle>
</timerEventDefinition>

循环3次,间隔10小时

也可以使用cron expressions :http://www.quartz-scheduler.org/documentation/

比如设置了<timerEventDefinition> <timeDate>2018-02-06T12:13:14</timeDate> </timerEventDefinition>

流程开始后,如果还未到2018.02.06 12:13:14,数据会保存在act_ru_timer_job里直到时间达到,flowable会单独启动一个线程执行任务到领导审批节点,act_ru_timer_job里的数据删除。

注意点:由于flowable会另启一个线程执行job,ThreadLocal相关变量都会获取不到。

 

最后

以上就是贪玩手机为你收集整理的springboot开发flowable定时任务的全部内容,希望文章能够帮你解决springboot开发flowable定时任务所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部