IntelligentRecognition/ah-jjsp-service/.svn/pristine/12/12384505db4625765325159070b...

66 lines
1.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.securityControl.task.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.ThreadPoolExecutor;
/**
* @author cw chen
* @description TODO
* @date 2022-08-22 14:42
*/
@EnableAsync
@Configuration
public class ThreadPoolConfig {
/**
* 核心线程数(默认线程数)
*/
private int corePoolSize = 10;
/**
* 最大线程数
*/
private int maxPoolSize = 10;
/**
* 允许线程空闲时间(单位:默认为秒)
*/
private int keepAliveTime = 10;
/**
* 缓冲队列数
*/
private int queueCapacity = 200;
/**
* 线程池名前缀
*/
private String threadNamePrefix = "custom-executor";
@Bean("TaskExecutor")
public ThreadPoolTaskExecutor taskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//设置核心线程数
executor.setCorePoolSize(corePoolSize);
//设置最大线程数
executor.setMaxPoolSize(maxPoolSize);
//线程池所使用的缓冲队列
executor.setQueueCapacity(queueCapacity);
//等待任务在关机时完成--表明等待所有线程执行完
executor.setWaitForTasksToCompleteOnShutdown(true);
// 等待时间 默认为0此时立即停止并没等待xx秒后强制停止
executor.setKeepAliveSeconds(keepAliveTime);
// 线程名称前缀
executor.setThreadNamePrefix(threadNamePrefix);
// 线程池对拒绝任务的处理策略
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// 初始化
executor.initialize();
return executor;
}
}