立即学习:https://edu.csdn.net/course/play/26270/326870?utm_source=blogtoedu
一、 ScheduledExecutorService 使用场景
1. 定时执行异步任务
2. 周期性异步任务
周期性异步执行的 run() 巧妙在于,通过 Period 参数来控制周期性。也就是周期性任务每次执行的时候(isPeriod),就会同时计算该周期性任务下次执行的时间,并且放入队列中。
二、 ScheduledExecutorService 注意点
1. 线程池任务和异常监控和告警,及时了解任务运行状况。
2. 周期性执行的任务,需要注意任务的执行时间,避免业务影响
3. 注意异常处理,抛出异常后,任务将终止周期性执行
三、任务队列控制时间
运用最小堆来存储,时间最小的放在头部
四、 还有哪些框架提供定时执行任务功能?
1. Spring 框架提供的定时执行器
@Scheduled(cron = "0 0 0 * * ?") //每天晚上12点执行
@Scheduled(cron = "0 0 0 * * ?") //每天晚上12点执行
@RequestMapping("/sdgdh456u4h5/fdhh156h87/grgfdfgdy1dfg1d5gw8358d7g/update")
public void cronupdate(){
activityService.updateCorn();
}
2. Quartz 定时任务框架