项目开发中经常需要执行一些定时任务,比如需要每天凌晨时候,分析一次前一天的信息。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注解就行。