SpringBoot与定时任务

项目开发中经常需要执行一些定时任务,比如需要每天凌晨时候,分析一次前一天的信息。Spring为我们提供了异步执行任务调度的方式,提供TaskExector、TaskScheduler接口。
两个注解:@EnableScheduling、@Scheduled
Cron表达式:

字段 允许值 允许的特殊字符
0-59 , - * /
0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 , - * /
星期 0-7或SUN-SAT 0,7是SUN , - * ? L C #
特殊字符 代表含义
, 枚举
- 区间
* 任意
/ 步长
? 日/星期冲突匹配
L 最后
W 工作日
C 和Calender联系后计算过的值
# 星期,4#2,第2个星期四

在SpringBoot中使用定时任务,首先要在配置类上标注@EnableScheduling注解,表示开启定时任务。
SpringBoot与定时任务
然后在执行定时任务的方法上标注@Scheduled注解就行。
SpringBoot与定时任务
SpringBoot与定时任务