From ce4000f47741a80cfe77b83e3f9c87083f36d79f Mon Sep 17 00:00:00 2001 From: wkc <978997012@qq.com> Date: Fri, 6 Feb 2026 09:15:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E7=B1=BB,=E9=85=8D=E7=BD=AE=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E4=BB=BB=E5=8A=A1=E4=B8=93=E7=94=A8=E7=BA=BF=E7=A8=8B?= =?UTF-8?q?=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建AsyncConfig配置类,启用Spring异步支持 - 配置importExecutor线程池: * 核心线程数: 2 * 最大线程数: 5 * 队列容量: 100 * 线程名前缀: import-async- * 拒绝策略: CallerRunsPolicy * 优雅关闭: 等待60秒完成任务 Co-Authored-By: Claude Sonnet 4.5 --- .../com/ruoyi/ccdi/config/AsyncConfig.java | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/config/AsyncConfig.java diff --git a/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/config/AsyncConfig.java b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/config/AsyncConfig.java new file mode 100644 index 0000000..ed28693 --- /dev/null +++ b/ruoyi-ccdi/src/main/java/com/ruoyi/ccdi/config/AsyncConfig.java @@ -0,0 +1,43 @@ +package com.ruoyi.ccdi.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * 异步配置类 + * + * @author ruoyi + */ +@Configuration +@EnableAsync +public class AsyncConfig { + + /** + * 导入任务专用线程池 + */ + @Bean("importExecutor") + public Executor importExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + // 核心线程数 + executor.setCorePoolSize(2); + // 最大线程数 + executor.setMaxPoolSize(5); + // 队列容量 + executor.setQueueCapacity(100); + // 线程名前缀 + executor.setThreadNamePrefix("import-async-"); + // 拒绝策略:由调用线程执行 + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + // 等待所有任务完成后再关闭线程池 + executor.setWaitForTasksToCompleteOnShutdown(true); + // 等待时间 + executor.setAwaitTerminationSeconds(60); + executor.initialize(); + return executor; + } +}