创建Java项目执行项目中所有定时任务时,每个任务开启多线程触发功能,用于当定时任务执行时间过长,影响主线程或者其他定时任务时使用。
@Override
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
//设定一个长度15的定时任务线程池
taskRegistrar.setScheduler(Executors.newScheduledThreadPool(15));
}
/**
* 异步线程池设置
* 如果所有的任务都使用异步,线程池执行的话,可以不配置同步任务线程池。但是使用异步需要注意的是异步线程池的大小配置。异步的线程池默认是无上限的开启线程数的。
* @return
*/
@Bean
SimpleAsyncTaskExecutor simpleAsyncTaskExecutor() {
SimpleAsyncTaskExecutor simpleAsyncTaskExecutor = new SimpleAsyncTaskExecutor();
simpleAsyncTaskExecutor.setConcurrencyLimit(7); //设置最大并行数
simpleAsyncTaskExecutor.setDaemon(true); //设置为守护线程
return simpleAsyncTaskExecutor;
}