You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
2.1 KiB
Java

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