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; + } +}