美文网首页
8、定时任务多线程的实现

8、定时任务多线程的实现

作者: youi_e050 | 来源:发表于2019-04-17 19:52 被阅读0次

前面我们学习了几种定时任务的实现,可以看到三个定时任务都可以执行,并且使同一个线程中串行执行,如果只有一个定时任务,这样做肯定没问题,但是当定时任务增多,如果一个任务卡死,就会导致其他任务也无法执行。所以我们这次学习多线程的实现方法。

在传统的Spring项目中,我们可以在xml配置文件添加task的配置,而在SpringBoot项目中一般使用config配置类的方式添加配置,所以新建一个AsyncConfig类

@Configuration
@EnableAsync
public class AsyncConfig {
     /*
    此处成员变量应该使用@Value从配置中读取
     */
    private int corePoolSize = 10;
    private int maxPoolSize = 200;
    private int queueCapacity = 10;
    @Bean
    public Executor taskExecutor() {
        ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
        executor.setCorePoolSize(corePoolSize);
        executor.setMaxPoolSize(maxPoolSize);
        executor.setQueueCapacity(queueCapacity);
        executor.initialize();
        return executor;
    }
}

@Configuration:表明该类是一个配置类
@EnableAsync:开启异步事件的支持

然后在定时任务的类或者方法上添加@Async 。最后重启项目,这样每一个任务都是在不同的线程中的

相关文章

网友评论

      本文标题:8、定时任务多线程的实现

      本文链接:https://www.haomeiwen.com/subject/vxdowqtx.html