package com.nmgs.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 org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler; import java.util.concurrent.Executor; import java.util.concurrent.ThreadPoolExecutor; @Configuration @EnableAsync public class ThreadPoolConfig { @Bean("integralManagerThreadPool") //线程池实例名,多个线程池配置需要声明,一个线程池可有可无 public Executor executorNormal() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(4); executor.setMaxPoolSize(10); executor.setQueueCapacity(3); executor.setKeepAliveSeconds(60); executor.setThreadNamePrefix("INTEGRAL_PUSH-"); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy()); // 所有任务结束后关闭线程池 executor.setWaitForTasksToCompleteOnShutdown(true); executor.initialize(); return executor; } @Bean("integralManagerHttpThreadPool") //线程池实例名,多个线程池配置需要声明,一个线程池可有可无 public Executor executorNormalHttp() { ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); executor.setCorePoolSize(4); executor.setMaxPoolSize(10); executor.setQueueCapacity(3); executor.setKeepAliveSeconds(60); executor.setThreadNamePrefix("INTEGRAL_HTTP-"); executor.setRejectedExecutionHandler(new ThreadPoolExecutor.AbortPolicy()); // 所有任务结束后关闭线程池 executor.setWaitForTasksToCompleteOnShutdown(true); executor.initialize(); return executor; } @Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler() { ThreadPoolTaskScheduler ThreadPoolTaskScheduler = new ThreadPoolTaskScheduler(); // ThreadPoolTaskScheduler.initialize(); return ThreadPoolTaskScheduler; } }