安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

SpringBoot设置动态定时任务

8月24日 程染筱投稿
  引入需要的依赖:dependenciesdependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependencydependencygroupIdorg。springframework。bootgroupIdspringbootstarterlog4j2artifactIdoptionaltrueoptionaldependency!springboot2。3版本后,如果需要使用校验,需手动导入validation包dependencygroupIdorg。springframework。bootgroupIdspringbootstartervalidationartifactIddependencydependencygroupIdorg。projectlombokgroupIdlombokartifactIdoptionaltrueoptionaldependencydependencies
  启动类:packagecom。wl。importorg。springframework。boot。SpringAimportorg。springframework。boot。autoconfigure。SpringBootAimportorg。springframework。scheduling。annotation。EnableSEnableSchedulingSpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String〔〕args){SpringApplication。run(DemoApplication。class,args);System。out。println(()启动成功!!!());}}
  配置文件application。yml,只定义了服务端口:server:port:8089
  定时任务执行时间配置文件:taskconfig。ini:printTime。cron010?
  定时任务执行类:packagecom。wl。demo。importlombok。Dimportlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Vimportorg。springframework。context。annotation。PropertySimportorg。springframework。scheduling。Timportorg。springframework。scheduling。TriggerCimportorg。springframework。scheduling。annotation。SchedulingCimportorg。springframework。scheduling。config。ScheduledTaskRimportorg。springframework。scheduling。support。CronTimportorg。springframework。stereotype。Cimportjava。time。LocalDateTimportjava。util。DDataSlf4jComponentPropertySource(classpath:taskconfig。ini)publicclassScheduleTaskimplementsSchedulingConfigurer{Value({printTime。cron})privateSOverridepublicvoidconfigureTasks(ScheduledTaskRegistrartaskRegistrar){动态使用cron表达式设置循环间隔taskRegistrar。addTriggerTask(newRunnable(){Overridepublicvoidrun(){log。info(Currenttime:{},LocalDateTime。now());}},newTrigger(){OverridepublicDatenextExecutionTime(TriggerContexttriggerContext){使用CronTrigger触发器,可动态修改cron表达式来操作循环规则CronTriggercronTriggernewCronTrigger(cron);DatenextExecutionTimecronTrigger。nextExecutionTime(triggerContext);returnnextExecutionT}});}}
  编写一个接口,使得可以通过调用接口动态修改该定时任务的执行时间:packagecom。wl。demo。importcom。wl。demo。task。ScheduleTimportlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Aimportorg。springframework。web。bind。annotation。GetMimportorg。springframework。web。bind。annotation。RequestMimportorg。springframework。web。bind。annotation。RestCSlf4jRestControllerRequestMapping(test)publicclassTestController{privatefinalScheduleTaskscheduleTAutowiredpublicTestController(ScheduleTaskscheduleTask){this。scheduleTaskscheduleT}GetMapping(updateCron)publicStringupdateCron(Stringcron){log。info(newcron:{},cron);scheduleTask。setCron(cron);}}
  启动项目,可以看到任务每10秒执行一次:
  访问接口,传入请求参数cron表达式,将定时任务修改为15秒执行一次:
  可以看到任务变成了15秒执行一次
  除了上面的借助cron表达式的方法,还有另一种触发器,区别于CronTrigger触发器,该触发器可随意设置循环间隔时间,不像cron表达式只能定义小于等于间隔59秒。packagecom。wl。demo。importlombok。Dimportlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Vimportorg。springframework。context。annotation。PropertySimportorg。springframework。scheduling。Timportorg。springframework。scheduling。TriggerCimportorg。springframework。scheduling。annotation。SchedulingCimportorg。springframework。scheduling。config。ScheduledTaskRimportorg。springframework。scheduling。support。CronTimportorg。springframework。scheduling。support。PeriodicTimportorg。springframework。stereotype。Cimportjava。time。LocalDateTimportjava。util。DDataSlf4jComponentPropertySource(classpath:taskconfig。ini)publicclassScheduleTaskimplementsSchedulingConfigurer{Value({printTime。cron})privateSprivateLongtimer10000L;OverridepublicvoidconfigureTasks(ScheduledTaskRegistrartaskRegistrar){动态使用cron表达式设置循环间隔taskRegistrar。addTriggerTask(newRunnable(){Overridepublicvoidrun(){log。info(Currenttime:{},LocalDateTime。now());}},newTrigger(){OverridepublicDatenextExecutionTime(TriggerContexttriggerContext){使用CronTrigger触发器,可动态修改cron表达式来操作循环规则CronTriggercronTriggernewCronTrigger(cron);DatenextExecutionTimecronTrigger。nextExecutionTime(triggerContext);使用不同的触发器,为设置循环时间的关键,区别于CronTrigger触发器,该触发器可随意设置循环间隔时间,单位为毫秒PeriodicTriggerperiodicTriggernewPeriodicTrigger(timer);DatenextExecutionTimeperiodicTrigger。nextExecutionTime(triggerContext);returnnextExecutionT}});}}
  增加一个修改时间的接口:packagecom。wl。demo。importcom。wl。demo。task。ScheduleTimportlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Aimportorg。springframework。web。bind。annotation。GetMimportorg。springframework。web。bind。annotation。RequestMimportorg。springframework。web。bind。annotation。RestCSlf4jRestControllerRequestMapping(test)publicclassTestController{privatefinalScheduleTaskscheduleTAutowiredpublicTestController(ScheduleTaskscheduleTask){this。scheduleTaskscheduleT}GetMapping(updateCron)publicStringupdateCron(Stringcron){log。info(newcron:{},cron);scheduleTask。setCron(cron);}GetMapping(updateTimer)publicStringupdateTimer(Longtimer){log。info(newtimer:{},timer);scheduleTask。setTimer(timer);}}
  测试结果:
投诉 评论 转载

如何启蒙幼儿园孩子学汉字?我用这个方法,孩子乐意学还记得牢如何启蒙幼儿园孩子学汉字?我用这个方法,孩子乐意学还记得牢汉字是我国的独有文字,更是我国的文化载体。它不仅代表着我国的文化传承,更是我们生活中必不可少的一部分。经历了几千……未来十年,在广东我真的很看好湛江!比大湾区还有潜力的新区关注我的老粉都知道,我写了很多篇关于湛江和粤西的城市分析。关于湛江,在广东省处于边角的位置,多年以来,都被冠以民风彪悍,经济落后,交通不便的恶名。但是自从2013年小编到湛江出……最近三年春晚收视率屡创新低,春晚为什么越来越不受欢迎了?你有没有觉得,一年一度的春晚越来越没那味了?现在许多人除夕夜准时守着电视机的原因,一半是出于习惯,另一半则是出于对语言类节目的期待。不知道大家有没有这种感觉,虽然每……SpringBoot设置动态定时任务引入需要的依赖:dependenciesdependencygroupIdorg。springframework。bootgroupIdspringbootstarterweb……巍巍古白塔来源:人民日报海外版会理古城一景。周能发摄会理白塔。黄正伟摄塔峰翠霭,是四川会理古城的古八景之一。会理城郊的白塔山,满目苍翠,碧波涌动。山上山下,高高矮矮的树……PC巨头的主场秀?CES2023即将开幕,红蓝绿三大厂商都有一年一度的CES马上就要开幕了,作为当前全球规模最大、影响力最广泛的消费类电子技术年展,诸多厂商都会在展会期间发布新品,其中英特尔、英伟达、AMD等上游硬件厂商的全新芯片,以及……2023年第一涨!这些车企宣布价格上调中国汽车工业协会数据显示,2022年111月,国内汽车销量为2430。2万辆,同比增长3。3,其中新能源车累计销量606。7万辆,增长100。6。协会预计,2023年国内汽车销……如何提高视频清晰度?揭秘,一看就会!现在很多小伙伴通过制作短视频去实现引流但制作的视频有些比较模糊做视频的小伙伴应该都知道,视频画质模糊不清,会严重影响观众的观看体验通过研究,总结了以下几点严重……终于等来了,呼北高速湖北境内最后一段将开通,湘鄂往来更便捷高速公路,自上世纪八十年代开始建设以来,我国建设的脚步就没停下过,而在这十四五的开局之年,高速公路的建设更是受到各地区的重视,不断有报道高速公路开工建设和即将通车的信息。高速公……LeicaMA钛合金特别版相机套组正式登场要价高达近2万美金。Leica正式发布MA钛合金特别版套组,是Leica发布的第6款钛合金限量版产品,延续了2001年LeicaM6TTL钛合金特别版的传统。Lei……828B2B企业节获评第十七届人民企业社会责任奖近日,由人民日报社指导、人民网主办的第十七届人民企业社会责任奖获奖名单揭晓,华为云携手超3万合作伙伴发起的828B2B企业节,获评特别贡献奖。人民企业社会责任奖评选活动是中国互……张康阳高唱国米庆生,网友苏宁的欠款什么时候还?近日,一段苏宁少掌门张康阳开生日趴体的视频流传网络。视频中,张康阳站在一群外国人中间,一手举着香槟,一手拿着画像,高唱我们是国际米兰,现场气氛嗨到极致。张康阳,苏宁……
iPhone14卖的贵吗?看看其他国家我顿悟了今日美女图,端庄而韵味十足的美女!中超再现奇葩剧情!外援故意做羞辱动作,前国脚飞跺报复染红离场一款类似苹果屏幕使用时间的Windows开源项目金融机构如何使用数据提升业务效率?国家金融与发展实验室副主任人类为何舍近求远,研究远处的火星,放弃近处的金星?北京2岁孩子方舱医院事件刷屏,我顿悟什么是中国人最好的样子也谈陈戌源辞职我终于知道了我为什么不是月光族,原来我过得不是精致女人的生活美图公司创始人吴欣鸿弥合数字鸿沟任重道远,科技公司勿以善小而NBA最佳防守球员之斯马特垃圾狗属性并不纯粹三伏养阳,一味中药,把阳气锁进身体,送给有需要的朋友每天一句名言,感悟人生的道理今天来听张爱玲科学活动教案航运人才缺口近十万名丁克族后悔吗?丁克族后悔愿意抵不过孩子诱惑女方争取抚养权的方法有哪些?一本有魔法的书给近600员工放有薪假,捐全球搜罗的130万口。。。“病毒猎手”利普金确诊:如果病毒能感染我。。。入学申请书奔四的日子基因修复技术成人类曙光可带来永生那一刻我们与四川人民同在

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利