Quartz定时任务框架线程池

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sz85850597/article/details/81116437

springboot使用@EnableScheduling注解打开定时任务功能后,默认创建一个固定线程数为1的线程池给定时任务框架调用执行定时任务。

当多个任务同时执行时,会导致多个任务竞争执行线程,当上一个任务执行完毕后,线程才会被释放出来用于其他任务的执行。导致定时任务延时执行。

因此需要创建一个多线程数量的线程池供定时任务使用。

@Configuration
public class ScheduledThreadPoolConfig implements SchedulingConfigurer {

    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
         taskRegistrar.setScheduler(taskExecutor());
    }

    @Bean(name="taskExecutor",destroyMethod="shutdown")
    public Executor taskExecutor() {
        return Executors.newScheduledThreadPool(20);
    }

}

猜你喜欢

转载自blog.csdn.net/sz85850597/article/details/81116437