springboot開發(fā)flowable定時(shí)任務(wù)問題
springboot開發(fā)flowable定時(shí)任務(wù)
激活流程引擎的一步執(zhí)行器
@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;流程圖:

其中,定時(shí)任務(wù)節(jié)點(diǎn)類型是 Timer Intermediate Catch Event

設(shè)置Timer Definition Type,有3種類型:
- Date(指定某個(gè)時(shí)間點(diǎn)觸發(fā))
- Duration(延時(shí)一段時(shí)間觸發(fā))
- Cycle(循環(huán)觸發(fā)直到某個(gè)時(shí)間點(diǎn)結(jié)束)

timeDate
<timerEventDefinition> <timeDate>2018-02-06T12:13:14</timeDate> </timerEventDefinition>
在確切的時(shí)間點(diǎn)執(zhí)行
timeDuration
<timerEventDefinition> <timeDuration>P10D</timeDuration> </timerEventDefinition>
從最后一個(gè)任務(wù)完成后10天開始執(zhí)行
timeCycle
<timerEventDefinition> <timeCycle activiti:endDate="2018-02-25T16:42:11+00:00">R3/PT10H</timeCycle> </timerEventDefinition>
或者變量形式:
<timerEventDefinition>
<timeCycle>R3/PT10H/${EndDate}</timeCycle>
</timerEventDefinition>循環(huán)3次,間隔10小時(shí)
也可以使用cron expressions :http://www.quartz-scheduler.org/documentation/
比如設(shè)置了
<timerEventDefinition> <timeDate>2018-02-06T12:13:14</timeDate> </timerEventDefinition>
流程開始后,如果還未到2018.02.06 12:13:14,數(shù)據(jù)會(huì)保存在act_ru_timer_job里直到時(shí)間達(dá)到,flowable會(huì)單獨(dú)啟動(dòng)一個(gè)線程執(zhí)行任務(wù)到領(lǐng)導(dǎo)審批節(jié)點(diǎn),act_ru_timer_job里的數(shù)據(jù)刪除。
注意點(diǎn):
由于flowable會(huì)另啟一個(gè)線程執(zhí)行job,ThreadLocal相關(guān)變量都會(huì)獲取不到。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Springboot整合Flowable6.x導(dǎo)出bpmn20的步驟詳解
- springBoot集成flowable的流程解析
- SpringBoot+Vue+Flowable模擬實(shí)現(xiàn)請(qǐng)假審批流程
- springboot整合flowable框架入門步驟
- Springboot+Flowable?快速實(shí)現(xiàn)工作流的開發(fā)流程
- Springboot結(jié)合Flowable實(shí)現(xiàn)工作流開發(fā)
- 基于springboot的flowable工作流實(shí)戰(zhàn)流程分析
- springboot2.5.2與 flowable6.6.0整合流程引擎應(yīng)用分析
相關(guān)文章
一文總結(jié)RabbitMQ中的消息確認(rèn)機(jī)制
RabbitMQ消息確認(rèn)機(jī)制指的是在消息傳遞過程中,發(fā)送方發(fā)送消息后,接收方需要對(duì)消息進(jìn)行確認(rèn),以確保消息被正確地接收和處理,本文為大家整理了RabbitMQ中的消息確認(rèn)機(jī)制,需要的可以參考一下2023-06-06
JAVALambda表達(dá)式與函數(shù)式接口詳解
大家好,本篇文章主要講的是JAVALambda表達(dá)式與函數(shù)式接口詳解,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下2022-02-02
MyBatis學(xué)習(xí)教程(二)—如何使用MyBatis對(duì)users表執(zhí)行CRUD操作
這篇文章主要介紹了MyBatis學(xué)習(xí)教程(二)—如何使用MyBatis對(duì)users表執(zhí)行CRUD操作的相關(guān)資料,需要的朋友可以參考下2016-05-05
java 實(shí)現(xiàn)黃金分割數(shù)的示例詳解
這篇文章主要介紹了java 實(shí)現(xiàn)黃金分割數(shù)的示例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2021-02-02

