package com.yxoa.qroom.utils;
import lombok.Data;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.AsyncConfigurer;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import java.util.concurrent.Executor;
import java.util.concurrent.ThreadPoolExecutor;
/**
* @Auther:
* @Date: 2022/8/25 10:02
* @Description:
*/
@Configuration
@Data
public class ExecutorConfig implements AsyncConfigurer {
/**
* 核心线程
*/
private int corePoolSize=20;
/**
* 最大线程
*/
private int maxPoolSize=100;
/**
* 队列容量
*/
private int queueCapacity=1000;
/**
* 保持时间
*/
private int keepAliveSeconds=300;
/**
* 名称前缀
*/
private String preFix="ExecutorPool";
@Bean
public Executor myExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(corePoolSize);
executor.setMaxPoolSize(maxPoolSize);
executor.setQueueCapacity(queueCapacity);
executor.setKeepAliveSeconds(keepAliveSeconds);
executor.setThreadNamePrefix(preFix);
executor.setRejectedExecutionHandler( new ThreadPoolExecutor.AbortPolicy());
executor.initialize();
return executor;
}
}
还没有评论,来说两句吧...