package com.glxp.api.task; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.AsyncConfigurer; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.lang.reflect.Method; import java.util.concurrent.Executor; //@EnableAsync //@Configuration public class TaskExecutorConfig implements AsyncConfigurer { private static final Logger log = LoggerFactory.getLogger(TaskExecutorConfig.class); @Override public Executor getAsyncExecutor() { ThreadPoolTaskExecutor threadPool = new ThreadPoolTaskExecutor(); threadPool.setCorePoolSize(10);//当前线程数 threadPool.setMaxPoolSize(20);// 最大线程数 threadPool.setQueueCapacity(5);//线程池所使用的缓冲队列 threadPool.setWaitForTasksToCompleteOnShutdown(true);//等待任务在关机时完成--表明等待所有线程执行完 threadPool.setAwaitTerminationSeconds(60 * 15);// 等待时间 (默认为0,此时立即停止),并没等待xx秒后强制停止 threadPool.setThreadNamePrefix("MyAsync-");// 线程名称前缀 threadPool.initialize(); // 初始化 return threadPool; } }