From 53c315297a3906e567b01107a85836528a664206 Mon Sep 17 00:00:00 2001 From: seatonwan9 Date: 星期二, 19 八月 2025 18:11:38 +0800 Subject: [PATCH] 产品订购sql --- src/main/java/com/webmanage/config/AsyncConfig.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 52 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/webmanage/config/AsyncConfig.java b/src/main/java/com/webmanage/config/AsyncConfig.java new file mode 100644 index 0000000..d712fac --- /dev/null +++ b/src/main/java/com/webmanage/config/AsyncConfig.java @@ -0,0 +1,52 @@ +package com.webmanage.config; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +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 javax.annotation.Resource; +import java.lang.reflect.Method; +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +@Configuration +public class AsyncConfig implements AsyncConfigurer { + + private static final Logger log = LoggerFactory.getLogger(AsyncConfig.class); + + @Resource + private AsyncExecutorProperties properties; + + @Override + @Bean("asyncExecutor") + public Executor getAsyncExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(properties.getCorePoolSize()); + executor.setMaxPoolSize(properties.getMaxPoolSize()); + executor.setQueueCapacity(properties.getQueueCapacity()); + executor.setKeepAliveSeconds(properties.getKeepAliveSeconds()); + executor.setThreadNamePrefix(properties.getThreadNamePrefix()); + executor.setWaitForTasksToCompleteOnShutdown(properties.isWaitForTasksToCompleteOnShutdown()); + executor.setAwaitTerminationSeconds(properties.getAwaitTerminationSeconds()); + // 楗卞拰绛栫暐锛氳皟鐢ㄦ柟绾跨▼鎵ц锛岄伩鍏嶄换鍔¤涓㈠純 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.initialize(); + return executor; + } + + @Override + public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() { + return new AsyncUncaughtExceptionHandler() { + @Override + public void handleUncaughtException(Throwable ex, Method method, Object... params) { + log.error("寮傛浠诲姟鎵ц寮傚父, method={}, params={}", method, params, ex); + } + }; + } +} + + -- Gitblit v1.8.0