由于在项目中使用注解来实现调度,@Schedule调度是spring的单线程来执行的,所以一旦某个调度阻塞必会影响其他的调度任务类,故写了调度线程池来解决此问题,只需要加个线程池文件来重写调度方法即可!
SchedulerConfig调度线程池:
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 SchedulerConfig implements SchedulingConfigurer {
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
taskRegistrar.setScheduler(Executors.newScheduledThreadPool(20));
}
}