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)請假審批流程
- 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)文章
java項(xiàng)目中使用 Lombok遇到的問題小結(jié)
這篇文章主要介紹了java項(xiàng)目中使用 Lombok遇到的問題小結(jié),需要的朋友可以參考下2018-07-07Spring中使用Hystrix實(shí)現(xiàn)熔斷詳解
這篇文章主要介紹了Java中使用Hystrix實(shí)現(xiàn)熔斷詳解,對于第一個(gè)問題,查看hystrix源碼可以看到,如果有緩存配置是優(yōu)先使用的緩存的,因此如果配置更新,必須要更新緩存,不能使用Hystrix.reset()方法來更新緩存,需要的朋友可以參考下2023-12-12Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意點(diǎn)
有時(shí)候很多css文件是公共的,我們必須要在每個(gè)html文件中引入它們,下面這篇文章主要給大家介紹了關(guān)于Springboot整合Thymeleaf引入公共的CSS和JS文件的方法及注意點(diǎn),需要的朋友可以參考下2024-06-06淺談springboot一個(gè)service內(nèi)組件的加載順序
這篇文章主要介紹了springboot一個(gè)service內(nèi)組件的加載順序,具有很好的參考價(jià)值,希望對大家有所幫助。以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家2021-08-08AsyncHttpClient的ConnectionSemaphore方法源碼流程解讀
這篇文章主要為大家介紹了AsyncHttpClient的ConnectionSemaphore方法源碼流程解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-12-12