什么是定时任务,使用场景
比如八月十五,定时任务会轮询,加载到任务区里面,去检测
比如电商系统,下单量、访客、交易量,用于数据分析
- 某个时间定时处理某个任务
- 发邮件、短信等
- 消息提醒
- 订单通知
- 统计报表系统
- …
常见定时任务
- Java自带的java.util.Timer类配置比较麻烦,时间延后问题,有些BUG
- Quartz框架: 配置更简单,xml或者注解适合分布式或者大型调度作业,功能很强大
- SpringBoot框架自带,很便捷
SpringBoot使用注解方式开启定时任务
- 启动类里面 @EnableScheduling开启定时任务,自动扫描
- 定时任务业务类 加注解 @Component被容器扫描
- 定时执行的方法加上注解 @Scheduled(fixedRate=2000) 定期执行一次
多种定时任务配置
比如说在某个时间,每天几点去执行。使用tool表达式