引入:一般在项目中会有多个定时任务去调度,这时候如果使用串行的定时任务会造成结果不准确,具体解决方案如下:
在config文件夹中引入如下配置类,不需要在springboot启动类添加@EnableScheduling这个注解
/**
* @author lz
* @Description: springTask 并行任务执行方法
**/
@Configuration
@EnableScheduling
public class AsyncTaskConfig implements SchedulingConfigurer, AsyncConfigurer {
//线程池线程数量
private int corePoolSize = 5;
@Bean
public ThreadPoolTaskScheduler taskScheduler()
{
ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
//初始化线程池
scheduler.initialize();
//线程池容量
scheduler.setPoolSize(corePoolSize);
return scheduler;
}
@Override
public Executor getAsyncExecutor() {
Executor executor = taskScheduler();
return executor;
}
@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
return null;
}
@Override
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
scheduledTaskRegistrar.setTaskScheduler(taskScheduler());
}
}