专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

SpringBoot设置动态定时任务

  引入需要的依赖:dependenciesdependencygroupIdorg。springframework。bootgroupIdspringbootstarterwebartifactIddependencydependencygroupIdorg。springframework。bootgroupIdspringbootstarterlog4j2artifactIdoptionaltrueoptionaldependency!springboot2。3版本后,如果需要使用校验,需手动导入validation包dependencygroupIdorg。springframework。bootgroupIdspringbootstartervalidationartifactIddependencydependencygroupIdorg。projectlombokgroupIdlombokartifactIdoptionaltrueoptionaldependencydependencies
  启动类:packagecom。wl。demo;importorg。springframework。boot。SpringApplication;importorg。springframework。boot。autoconfigure。SpringBootApplication;importorg。springframework。scheduling。annotation。EnableScheduling;EnableSchedulingSpringBootApplicationpublicclassDemoApplication{publicstaticvoidmain(String〔〕args){SpringApplication。run(DemoApplication。class,args);System。out。println(()启动成功!!!());}}
  配置文件application。yml,只定义了服务端口:server:port:8089
  定时任务执行时间配置文件:taskconfig。ini:printTime。cron010?
  定时任务执行类:packagecom。wl。demo。task;importlombok。Data;importlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Value;importorg。springframework。context。annotation。PropertySource;importorg。springframework。scheduling。Trigger;importorg。springframework。scheduling。TriggerContext;importorg。springframework。scheduling。annotation。SchedulingConfigurer;importorg。springframework。scheduling。config。ScheduledTaskRegistrar;importorg。springframework。scheduling。support。CronTrigger;importorg。springframework。stereotype。Component;importjava。time。LocalDateTime;importjava。util。Date;DataSlf4jComponentPropertySource(classpath:taskconfig。ini)publicclassScheduleTaskimplementsSchedulingConfigurer{Value({printTime。cron})privateStringcron;OverridepublicvoidconfigureTasks(ScheduledTaskRegistrartaskRegistrar){动态使用cron表达式设置循环间隔taskRegistrar。addTriggerTask(newRunnable(){Overridepublicvoidrun(){log。info(Currenttime:{},LocalDateTime。now());}},newTrigger(){OverridepublicDatenextExecutionTime(TriggerContexttriggerContext){使用CronTrigger触发器,可动态修改cron表达式来操作循环规则CronTriggercronTriggernewCronTrigger(cron);DatenextExecutionTimecronTrigger。nextExecutionTime(triggerContext);returnnextExecutionTime;}});}}
  编写一个接口,使得可以通过调用接口动态修改该定时任务的执行时间:packagecom。wl。demo。controller;importcom。wl。demo。task。ScheduleTask;importlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。web。bind。annotation。GetMapping;importorg。springframework。web。bind。annotation。RequestMapping;importorg。springframework。web。bind。annotation。RestController;Slf4jRestControllerRequestMapping(test)publicclassTestController{privatefinalScheduleTaskscheduleTask;AutowiredpublicTestController(ScheduleTaskscheduleTask){this。scheduleTaskscheduleTask;}GetMapping(updateCron)publicStringupdateCron(Stringcron){log。info(newcron:{},cron);scheduleTask。setCron(cron);returnok;}}
  启动项目,可以看到任务每10秒执行一次:
  访问接口,传入请求参数cron表达式,将定时任务修改为15秒执行一次:
  可以看到任务变成了15秒执行一次
  除了上面的借助cron表达式的方法,还有另一种触发器,区别于CronTrigger触发器,该触发器可随意设置循环间隔时间,不像cron表达式只能定义小于等于间隔59秒。packagecom。wl。demo。task;importlombok。Data;importlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Value;importorg。springframework。context。annotation。PropertySource;importorg。springframework。scheduling。Trigger;importorg。springframework。scheduling。TriggerContext;importorg。springframework。scheduling。annotation。SchedulingConfigurer;importorg。springframework。scheduling。config。ScheduledTaskRegistrar;importorg。springframework。scheduling。support。CronTrigger;importorg。springframework。scheduling。support。PeriodicTrigger;importorg。springframework。stereotype。Component;importjava。time。LocalDateTime;importjava。util。Date;DataSlf4jComponentPropertySource(classpath:taskconfig。ini)publicclassScheduleTaskimplementsSchedulingConfigurer{Value({printTime。cron})privateStringcron;privateLongtimer10000L;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);returnnextExecutionTime;}});}}
  增加一个修改时间的接口:packagecom。wl。demo。controller;importcom。wl。demo。task。ScheduleTask;importlombok。extern。slf4j。Slf4j;importorg。springframework。beans。factory。annotation。Autowired;importorg。springframework。web。bind。annotation。GetMapping;importorg。springframework。web。bind。annotation。RequestMapping;importorg。springframework。web。bind。annotation。RestController;Slf4jRestControllerRequestMapping(test)publicclassTestController{privatefinalScheduleTaskscheduleTask;AutowiredpublicTestController(ScheduleTaskscheduleTask){this。scheduleTaskscheduleTask;}GetMapping(updateCron)publicStringupdateCron(Stringcron){log。info(newcron:{},cron);scheduleTask。setCron(cron);returnok;}GetMapping(updateTimer)publicStringupdateTimer(Longtimer){log。info(newtimer:{},timer);scheduleTask。setTimer(timer);returnok;}}
  测试结果:

青式生活把露营搬进咖啡馆LOOK!QINGDAO李家泽一杯咖啡,一份闲适,一种生活。从忙忙碌碌中抽离出来,伴随着咖啡的馨香,享受难得的悠闲时光。近期,文旅君将推出青式生活咖啡度日指南系列专栏,在周六,带大此时,正是登山好时节山,能宣散气,生万物也虽已入冬,阳羡依旧风景烂漫别因为天冷宅在家中是时候爬山锻炼身体了现在爬山既没有盛夏那么燥热也不会像严冬那么寒冷恰到好处的凉意和登山散发的热量相互冲撞刚好达到一曲阜市吴村镇小小海棠红彤彤初冬迎来好丰景中国山东网感知山东11月18日讯(通讯员张向东苏执)眼下正值深秋初冬时节,走进中国美丽乡村建设示范镇之一的吴村镇,这个堪称林果之乡的地方,在各类时令果品早已不见了踪影,但尚有一种苹解决老年人和不经常乘高铁的人出行问题,教你如何乘坐高铁出行因为工作的原因经常出差乘坐高铁,时常碰到单独出行的老年人和一部分不经常乘高铁的人因为无法快速进站上车,耽误行程。今天就将如何乘坐高铁给大家说说,希望能够帮助到哪怕一个人。乘坐高铁出江夏八分山满山红叶11月6日,航拍武汉江夏八分山满山红叶。这些红叶主要包括红枫枫香栎树等,每年进入10月它们的叶子便开始发黄变红,引来许多观赏红叶的游人。八分山海拔272。3米,是纸坊最高的山了,位这些世界规模最大,由我国建成过去十年,我国交通市政能源水利等基础设施建设实现跨越式发展,与此同时,各类新型基础设施建设方兴未艾,夯实了中国经济高质量发展的基础。秋日的北京城市绿心森林公园,游客正在散步赏花拍照成都开车两小时,这个地方可以和孔雀共舞,堪称雅安鸟类天堂周末来了在成都住的朋友们,不知道周末去哪里好玩吗?这次给大家推荐的就是雅安的碧峰峡景区,碧峰峡也是蛮大的,适合玩个两天一夜,首先他们的动物园就可以玩上一天动物园一开始是有狮子之类的大饼摊招牌之皇家大饼摊(2)宗教的改革带来的意义是深远的。英格兰人慢慢形成了自己的民族认同和权力主张,同时也形成了自己的价值观利己主义以及由此带来的变通主义或者叫永恒的利益至上。你想,国王为了达到自己的目的,秦淮八艳之首柳如是,从妓女到巾帼英雄,有怎样的传奇人生?1642,明朝末年,一艘迎娶用的喜船在茸城(今中国上海市松江区)江上随着江浪摇动。它本应为这座热闹的城市增添更多喜庆气氛,毕竟它代表的是一对男女的正式结合,值得庆贺。然而,奇怪的是亮剑,亮的是胆识,是精气神,马拉松的由来马拉松战役是公元前490年波斯帝国对雅典发动的战争,此战希腊联军以少胜多,马拉松战役后,希腊各城市国家进一步加强了团结。天降大任米提亚德(Miltiades)出生于雅典一个最古老的互联网教研公益大讲堂(第三期)首讲开讲运城市参加线上培训11月17日,互联网赋能区域教育新基建创新应用公益活动之互联网教研公益大讲堂(第三期)首讲开讲。运城市作为教育新基建公益共同体成员单位参加在线学习。各县(市区)教研员骨干教师通过线
大反转!唐嫣入场被拒后,粉丝倒打一耙,主办方直接禁了唐嫣话题3月25日,微博之夜上演了各种世纪大同框,各路cp大乱炖,TFboys大合体,仙剑主演上演回忆杀,只不过这些都和唐嫣无缘了,明明已经走了红毯,也安排了座位,为什么一睁眼都查无此人呢李宇春为什么是C位?在今年的微博之夜中,李宇春依然是C位,这让很多人不满意。很多艺人都可以用疫情作借口,来掩饰自己创作的匮乏,但李宇春不用。我们就以2020年为主,说说李宇春在疫情期间的表现。首先是公微博之夜3处抓马2处失望,女明星风情万种,男明星儒雅绅士微博之夜可以说是聚集了半个娱乐圈的艺人,因此不少网友表示内娱又活了。而这次晚会还是非常给力的,早早就宣布了明星阵容,就连一直低调的胡歌都参加了,难免让人有点期待。不过从最终获奖名单电影推荐太后吉祥慈禧26岁丧夫,46岁怀孕,孩子是谁的?写在前面昨晚在后台看了一下数据,发现关注我的朋友年龄段在4055岁居多,人到中年,上有老下有小,生活不易。所以设身处地的做了一些思考,目前每晚2200更新的是次日限行尾号,周五六晚黑暗荣耀霸凌配角的私照外流!展现与剧中高冷截然不同的姿态黑暗荣耀霸凌组与河度领代表私下大玩自拍的照片外流,展现与剧中恶霸与高冷截然不同的姿态,尤其是金赫拉饰演的吸毒画家李蓑罗,俏皮的嘟嘴卖萌让粉丝直呼私底下真的很可爱耶。宋慧乔主演的复仇剧场版数码宝贝02TheBeginning10月27日上映数码宝贝大冒险02动画即将上映的剧场版数码宝贝大冒险02TheBeginning制作团队于今日(3月25日)宣布,动画将于10月27日在日本上映。团队还公布了全新的预告以及主视觉图疯狂!上海微博之夜,半个娱乐圈都来了,粉丝们露营守候!太疯狂了!上海举办微博之夜,半个娱乐圈都来了,为了守候自己的偶像,竟然有很多粉丝从昨晚起,就守在场外露营等偶像出现。对于粉丝裹被子露宿街头追星警方提醒,切勿有占位圈地阻碍道路通行等落幕成龙,刘德华,古天乐,郭富城,梁朝伟,谢霆锋亲手扼杀!卢克文香港电影圈,又老又富,穷途末路往前推二十年,谁会想到香港电影居然只能拍警匪犯罪题材的电影了?往前推三十年,谁会想到,香港电影人居然活成了一群电影混子混警匪片,混票房,混日子谁从没吃过肉盗图炫富,6位明星撒谎却被拆穿打脸,假得要命前言你敢相信一个人真的从来没有吃过肉吗,但这句话确实是从一位明星的嘴里说出来的。不仅如此,更有一些明星经常在网上炫富,结果被热心的网友狠狠打脸。所以不得不说,现如今的娱乐圈风气真的王菲谢霆锋ampampamp刘嘉玲梁朝伟超世纪CP感情路有多少不为人知故事呢?王菲谢霆锋23年后,再次公开牵手秀恩爱,刘嘉玲在亚洲电影大奖上为梁朝伟颁奖,这两对超过20年的世纪CP感情路,究竟有多少酸甜苦辣呢?一觉睡醒,王菲和谢霆锋23年后,再次公开牵手秀恩王菲谢霆锋再上热搜,谢霆锋一个小动作,暴露了他们的真实状况3月11日,媒体拍到王菲与谢霆锋在机场牵手,也宣告这两位再次复合了,让二位的cp粉激动不已,直呼爷青回。而在3月21日,两人从香港回北京,又被狗仔拍到。并在一个隐秘的角落,王菲在穿
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网