线程池配置

master
anthonywj 2 years ago
parent a643f5388f
commit 4465cc57e7

@ -0,0 +1,34 @@
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;
}
}
Loading…
Cancel
Save