spring 计划任务@Scheduled之基于单线程池的坑

@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注解实现原理线程

相关文章
相关标签/搜索