下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第SpringBoot如何動態(tài)修改Scheduled(系統(tǒng)啟動默認(rèn)執(zhí)行,動態(tài)修改)可配置的Scheduled執(zhí)行時間,正常的Scheduled是在項目啟動的時候固定死的,沒辦法根據(jù)調(diào)用后臺代碼自動更新Scheduled執(zhí)行時間
系統(tǒng)啟動讀取時間Cron:003**,通過執(zhí)行后臺方法可以動態(tài)配置Cron時間格式,并且清楚掉原本執(zhí)行任務(wù),執(zhí)行新的設(shè)置定時任務(wù)時間
1、根據(jù)ThreadPoolTaskScheduler、ScheduledFuture類動態(tài)修改定時任務(wù)(ThreadPoolTaskScheduler這個類不能使用@Autowired,直接定義成員變量)
privateThreadPoolTaskSchedulerthreadPoolTaskScheduler;
privateScheduledFuturefuture;
2、動態(tài)修改Scheduled后臺方法邏輯(object是Runnable實現(xiàn)類需要執(zhí)行的定時邏輯,放到run線程方法內(nèi))
threadPoolTaskScheduler=newThreadPoolTaskScheduler();
threadPoolTaskScheduler.initialize();
if(future!=null){
future.cancel(true);
future=threadPoolTaskScheduler.schedule(object,newCronTrigger("需要Cron時間格式字符串"));
以上邏輯-----------------------就可以實現(xiàn)動態(tài)Scheduled配置
以下邏輯-----------------------配置項目啟動自動讀取DBCron設(shè)置定時
1、@Order并實現(xiàn)CommandLineRunner類重寫方法run
@Override
publicvoidrun(String...args)throwsException{
("系統(tǒng)啟動默認(rèn)設(shè)置對賬任務(wù)時間");
//獲取目前DB設(shè)置的對賬時間
GetBillTimeResptime=systemConfigService.getTime();
//獲取Cron時間格式字符串
StringtimeCron=billTimeCronFormat(time.getBillTime());
("時間為:"+timeCron);
//Scheduler設(shè)置每天執(zhí)行。。。
threadPoolTaskScheduler=newThreadPoolTaskScheduler();
threadPoolTaskScheduler.initialize();
future=threadPoolTaskScheduler.schedule(object,newCronTrigger("DBCron時間格式字符串"));}
SpringBoot項目@Scheduled讀取動態(tài)參數(shù)
1、基于@Scheduled可配置開發(fā)
pertites:
read.timer.parmas=00/1****
定時類:
@Component
publicclassScheduledService{
Loggerlogger=LoggerFactory.getLogger(ScheduledService.class);
@Scheduled(cron="${read.timer.parmas}")
publicvoidreadConfigTable(){
("*****.read.timer.parmas");
}
啟動類:
@SpringBootApplication
@EnableScheduling//必須
publicclassDataApplication{
publicstaticvoidmain(String[]args){
SpringApplication.run(DataApplication.class,args);
}
2、基于代碼實現(xiàn)
(1)核心代碼
@Component
@EnableScheduling
publicclassTestScheduledParamsimplementsSchedulingConfigurer{
Loggerlogger=LoggerFactory.getLogger(TestScheduledParams.class);
publicstaticStringDEFAULT_CORN="0/3*****";
//##動態(tài)傳參要給默認(rèn)值。
publicstaticStringcorn=DEFAULT_CORN;
@Override
publicvoidconfigureTasks(ScheduledTaskRegistrartaskRegistrar){
taskRegistrar.addTriggerTask(newRunnable(){
@Override
publicvoidrun(){
//("定時任務(wù)邏輯");
},newTrigger(){
@Override
publicDatenextExecutionTime(TriggerContexttriggerContext){
//任務(wù)觸發(fā),可修改任務(wù)的執(zhí)行周期
CronTriggercronTrigger=newCronTrigger(corn);
Datedate=cronTrigger.nextExecutionTi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業(yè)內(nèi)部溝通與協(xié)作工具操作手冊
- 鐵路機(jī)車制修工節(jié)假日后復(fù)工安全考核試卷含答案
- 3企業(yè)采購與供應(yīng)鏈管理規(guī)范手冊(標(biāo)準(zhǔn)版)
- 搪瓷燒成工春節(jié)假期安全告知書
- 衛(wèi)生醫(yī)學(xué)正副高高級職稱考試試題及答案中醫(yī)內(nèi)科試題庫案例題
- 消防工程師消防技術(shù)綜合能力考試試題及完整答案(有一套)
- 低壓電工考試題庫2025(題庫大全)
- 2025年安全生產(chǎn)月全國安全生產(chǎn)知識競賽題庫及答案(九)
- 低電壓電工證試題及答案2025年必修版
- 電廠人員安全教育考試題庫及答案
- 六年級寒假家長會課件
- 物流鐵路專用線工程節(jié)能評估報告
- 2026天津市南開區(qū)衛(wèi)生健康系統(tǒng)招聘事業(yè)單位60人(含高層次人才)備考核心試題附答案解析
- 重瞼手術(shù)知情同意書
- 46566-2025溫室氣體管理體系管理手冊及全套程序文件
- DL-T976-2017帶電作業(yè)工具、裝置和設(shè)備預(yù)防性試驗規(guī)程
- 換電柜維護(hù)培訓(xùn)課件
- 土石方工程掛靠合同
- 招聘會會展服務(wù)投標(biāo)方案(技術(shù)標(biāo) )
- 企業(yè)標(biāo)準(zhǔn)-格式模板
- 軟件售后服務(wù)人員提成方案附表
評論
0/150
提交評論