From 2e8403aa6dd3794b99f0a32810d753a182174d36 Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Wed, 21 Sep 2022 23:01:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=BC=82=E6=AD=A5=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xjs/config/AsyncConfig.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 xjs-business/xjs-business-common/src/main/java/com/xjs/config/AsyncConfig.java diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/config/AsyncConfig.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/config/AsyncConfig.java new file mode 100644 index 00000000..bf74c8ae --- /dev/null +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/config/AsyncConfig.java @@ -0,0 +1,43 @@ +package com.xjs.config; + +import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.AsyncConfigurer; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.Arrays; +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @author xiejs + * @since 2022-09-20 + */ +@Configuration +public class AsyncConfig implements AsyncConfigurer { + + @Bean + public ThreadPoolTaskExecutor asyncExecutor() { + // spring线程池各个方法的作用自行学习,按需配置。 + ThreadPoolTaskExecutor executor=new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(5); + executor.setMaxPoolSize(10); + executor.setKeepAliveSeconds(60); + executor.setQueueCapacity(99999); + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.setThreadNamePrefix("async-service-");// 看这里① + executor.setAwaitTerminationSeconds(60); + executor.setWaitForTasksToCompleteOnShutdown(true); + return executor; + } + @Override + public Executor getAsyncExecutor() { + return asyncExecutor(); + } + @Override + public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { + return (ex,method,params)->System.out.printf("执行异步方法:%s错误,%s%n", Arrays.toString(params), ex); + } + +}