@Scheduled--spring的定时任务,能够快速建立定时任务;可是它实际上是有个不足之处的-----基于单线程池处理任务!!!spring
多数状况下咱们会用它来作数据的定时更新,可是若是某个任务卡死,后面的任务全都得玩完!源码分析
这种状况咱们能够自定义一个线程池:.net
@Configuration @EnableAsync public class ScheduleConfig { @Bean public TaskScheduler taskScheduler() { ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); //计划任务线程池,每来一个任务创一个线程,直至线程池满 taskScheduler.setPoolSize(n); return taskScheduler; } } //在任务方法上添加@Async注解 @Async @Scheduled(cron="0 */1 * * * ?") public void task1(){ ....... }
源码分析:Springboot @Scheduled注解实现原理线程