package org.sxkj.odm.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import java.util.concurrent.ThreadPoolExecutor; /** * odm 任务 线程池配置 * @author zhongrj * @date 2024-09-11 */ @Configuration public class OdmTaskThreadPoolConfig { @Bean(name = "odmTaskThreadPool") public ThreadPoolTaskExecutor customThreadPool() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); // 核心线程数 // executor.setCorePoolSize(Runtime.getRuntime().availableProcessors()); executor.setCorePoolSize(4); // 最大线程数 executor.setMaxPoolSize(8); // 队列大小 executor.setQueueCapacity(150); // 线程空闲时间(秒) executor.setKeepAliveSeconds(60); // 线程名称前缀 executor.setThreadNamePrefix("odmTaskThreadPool-"); // 设置拒绝策略 executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); // 初始化线程池 executor.initialize(); return executor; } }