您现在的位置是: 首页 > 后端开发 SpringBoot 定时任务 多线程

SpringBoot 定时任务 多线程

2020-08-03 后端开发 1348人已围观 2962次浏览

简介SpringBoot 定时任务 多线程

SpringBoot 中如果存在很多个定时任务,在单线程的情况下,有时候就会出现一个耗时很长的定时任务会一直占据资源,导致其他定时任务不执行或执行延时,这时候就可以使用多线程定时任务来解决这个问题。

首先定义一个定时任务线程池(原有的定时任务配置不用修改)

import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.SchedulingConfigurer;
import org.springframework.scheduling.config.ScheduledTaskRegistrar;

import java.util.concurrent.Executors;

/**
 * 定时任务线程池
 */
@Configuration
// 所有的定时任务都放在一个线程池中,定时任务启动时使用不同的线程。
public class ScheduleConfig implements SchedulingConfigurer {
    @Override
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
        // 设定一个长度10的定时任务线程池(这里可以根据自己项目中的定时任务数量来配置)
        taskRegistrar.setScheduler(Executors.newScheduledThreadPool(10));
    }
}

之后再次执行定时任务,就会发现是通过不同的线程来操作的,并且耗时很长的定时任务也不会影响到其他定时任务

很赞哦! (0)

站长推荐

站点信息

  • 网站地图