本文主要是介绍使用@Scheduled注解在SpringBoot中实现定时任务,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
实现步骤
- 在启动类加注解@EnableScheduling
- 在定时任务所在类中加注解@Component
- 在定时任务的方法上加@Scheduled(cron=“0/5 * * * * ?”)
注:
(1)cron表达式:秒 分 时 日 月 周 年(可选)
(2)字符
① :所有值;如分的位置上是,则每分钟都会触发;月的位置上是*,则每月都触发。
② ?:不指定值;使用时不关心该位置;如每年2月1日触发,不关心周几,则周几的位置为?。
③ -:区间;月的位置上2-5,表示2,3,4,5月都会触发。
④ ,:指定多个值,用“,”分开;如日的位置上“2,10,25”,表示2日,10日,25日都会触发。
⑥ /:递增触发;如时的位置上“2/10”,表示两点时触发一次,然后每隔10小时触发一次。
⑦ L:最后;在日的位置上表示当月的最后一天,在周的位置上表示周六(1-周天,7-周六);周的位置上是“5L”则表示本月最后一个周四。
⑧ W:离指定日期最近的工作日(只能设置在日的位置上);“7W”,指定的7日若是周六,则在周五出发;若是周天,则在周一触发;若是工作日,则在指定日期触发。
⑨ #:序号(只能在周上使用);“5#2”表示每月第二个周五;不存在则不触发。
字段 | 取值 | 有效字符 |
---|---|---|
秒 | 0-59 | , - * / |
分 | 0-59 | , - * / |
时 | 0-23 | , - * / |
日 | 1-31(该位置为“LW”表示本月最后一个工作日触发) | , - * ? / L W |
月 | 1-12(或JAN-DEC,不区分大小写) | , - * / |
周 | 1-7(或SUN-SAT,不区分大小写) | , - * ? / L # |
年(可选) | 1970-2099 | , - * / |
(3)示例
- 0 0/2 10,16 * * ? 每天10点到10点59和16点到16点59,每2分钟触发一次。
- 0 0 2 ? * sun 每周天凌晨2点触发。
这篇关于使用@Scheduled注解在SpringBoot中实现定时任务的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!