41 lines
1.5 KiB
Java
41 lines
1.5 KiB
Java
package cn.van.business.config;
|
||
|
||
import org.springframework.aop.interceptor.AsyncUncaughtExceptionHandler;
|
||
import org.springframework.aop.interceptor.SimpleAsyncUncaughtExceptionHandler;
|
||
import org.springframework.context.annotation.Bean;
|
||
import org.springframework.context.annotation.Configuration;
|
||
import org.springframework.scheduling.annotation.AsyncConfigurer;
|
||
import org.springframework.scheduling.annotation.EnableAsync;
|
||
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
|
||
|
||
import java.util.concurrent.Executor;
|
||
import java.util.concurrent.ThreadPoolExecutor;
|
||
|
||
/**
|
||
* @author Leo
|
||
* @version 1.0
|
||
* @create 2024/11/29 11:41
|
||
* @description:
|
||
*/
|
||
@Configuration
|
||
@EnableAsync
|
||
public class AsyncConfig implements AsyncConfigurer {
|
||
|
||
@Bean(name = "threadPoolTaskExecutor")
|
||
public Executor getAsyncExecutor() {
|
||
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
|
||
executor.setCorePoolSize(16); // 核心线程数
|
||
executor.setMaxPoolSize(128); // 最大线程数
|
||
executor.setQueueCapacity(500); // 队列容量
|
||
executor.setThreadNamePrefix("Async-Executor-");
|
||
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); // 拒绝策略
|
||
executor.initialize(); // 初始化执行器
|
||
return executor; // 返回执行器
|
||
}
|
||
|
||
@Override
|
||
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
|
||
return new SimpleAsyncUncaughtExceptionHandler();
|
||
}
|
||
}
|