动态定时任务数据库获取方式
生活随笔
收集整理的這篇文章主要介紹了
动态定时任务数据库获取方式
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Spring 中,創(chuàng)建定時(shí)任務(wù)除了使用@Scheduled 注解外,還可以使用 SchedulingConfigurer。
@Schedule 注解有一個(gè)缺點(diǎn),其定時(shí)的時(shí)間不能動(dòng)態(tài)的改變,而基于 SchedulingConfigurer 接口的方式可以做到。SchedulingConfigurer 接口可以實(shí)現(xiàn)在@Configuration 類(lèi)上,同時(shí)不要忘了,還需要@EnableScheduling 注解的支持。
/*** 執(zhí)行定時(shí)任務(wù).*/@Overridepublic void configureTasks(ScheduledTaskRegistrar taskRegistrar) {taskRegistrar.addTriggerTask(() -> {System.out.println("=================執(zhí)行動(dòng)態(tài)定時(shí)任務(wù)============= ");},triggerContext -> {//獲取數(shù)據(jù)庫(kù)定時(shí)任務(wù)拉姆達(dá)表達(dá)式String cron = scheduledMapper.getCron();Date date = new CronTrigger(cron).nextExecutionTime(triggerContext);System.out.println("===========定時(shí)任務(wù)執(zhí)行周期:" + cron + ":" + date);return date;});}此方法,是在觸發(fā)運(yùn)行的時(shí)候,刷新定時(shí)規(guī)則,這種方法的缺點(diǎn)是,刷新規(guī)則的時(shí)間必須是在某次觸發(fā)運(yùn)行的時(shí)候。
想要立即生效 參考
spring schedule 實(shí)時(shí)更新 cron 表達(dá)式,并且立即生效。(單機(jī),非分布式調(diào)度,無(wú)需quartz)_stomfeng的專(zhuān)欄-CSDN博客
總結(jié)
以上是生活随笔為你收集整理的动态定时任务数据库获取方式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 4个月规模骤降2.5万亿,未来要再降3万
- 下一篇: 浦发万用随借金和万用金有什么区别 随借金