package com.zy.common.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;
|
|
/**
|
* Created by vincent on 2022/5/21
|
*/
|
@Configuration
|
@EnableAsync
|
public class ThreadPoolConfig {
|
|
@Bean(name = "orderThreadPool")
|
public ThreadPoolTaskExecutor orderThreadPool() {
|
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
int core = Runtime.getRuntime().availableProcessors();
|
core = 2;
|
//设置核心线程数
|
executor.setCorePoolSize(core);
|
//设置最大线程数
|
executor.setMaxPoolSize(core * 10 + core);
|
//除核心线程外的线程存活时间
|
executor.setKeepAliveSeconds(3);
|
//缓冲队列
|
executor.setQueueCapacity(core);
|
executor.setThreadNamePrefix("order-task-");
|
//设置拒绝策略
|
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
|
return executor;
|
}
|
|
|
}
|