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注解,表示开启定时任务。
然后在执行定时任务的方法上标注@Scheduled注解就行。