什么是定时任务,使用场景
- 某个时间定时处理某个任务
- 发邮件、短信等
- 消息提醒
- 订单通知
- 统计报表系统
- …
常见定时任务
-
Java自带的
java.util.Timer
类配置比较麻烦,时间延后问题 -
Quartz
框架: 配置更简单,xml或者注解适合分布式或者大型调度作业 -
SpringBoot
框架自带 -
SpringBoot
使用注解方式开启定时任务-
启动类里面
@EnableScheduling
开启定时任务,自动扫描 -
定时任务业务类 加注解
@Component
被容器扫描 -
定时执行的方法加上注解
@Scheduled(fixedRate=2000)
定期执行一次
-
cron
定时任务表达式
cron
定时任务表达式@Scheduled(cron="*/1 * * * * *")
表示每秒crontab
工具 https://tool.lu/crontab/
fixedRate
: 定时多久执行一次(上一次开始执行时间点后xx秒再次执行;)fixedDelay
: 上一次执行结束时间点后xx秒再次执行