Commit 2627431d by zhangxingmin

push

parent 9b72debe
...@@ -39,54 +39,54 @@ public class AsyncConfig { ...@@ -39,54 +39,54 @@ public class AsyncConfig {
return executor; return executor;
} }
/**
* 通用异步任务线程池
*/
@Bean("commonAsyncExecutor")
public Executor commonAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(5);
executor.setMaxPoolSize(10);
executor.setQueueCapacity(50);
executor.setThreadNamePrefix("common-async-");
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.setWaitForTasksToCompleteOnShutdown(true);
executor.setAwaitTerminationSeconds(30);
executor.setKeepAliveSeconds(30);
executor.initialize();
return executor;
}
// /** // /**
// * 通用异步任务线程池 // * 通用异步任务线程池
// * @return
// */ // */
// @Bean(name = "commonAsyncExecutor") // @Bean("commonAsyncExecutor")
// public ThreadPoolTaskExecutor commonAsyncExecutor() { // public Executor commonAsyncExecutor() {
// ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); // ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// // 设置核心线程数、最大线程数、队列容量等参数... // executor.setCorePoolSize(5);
// executor.setCorePoolSize(10); // executor.setMaxPoolSize(10);
// executor.setMaxPoolSize(20); // executor.setQueueCapacity(50);
// executor.setQueueCapacity(100);
// executor.setThreadNamePrefix("common-async-"); // executor.setThreadNamePrefix("common-async-");
// // executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// // 设置 TaskDecorator,用于传递 RequestAttributes // executor.setWaitForTasksToCompleteOnShutdown(true);
// executor.setTaskDecorator(runnable -> { // executor.setAwaitTerminationSeconds(30);
// // 获取当前线程的 RequestAttributes // executor.setKeepAliveSeconds(30);
// RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
// return () -> {
// try {
// // 将 RequestAttributes 设置到子线程中
// RequestContextHolder.setRequestAttributes(attributes);
// runnable.run();
// } finally {
// // 任务完成后清空,避免内存泄漏
// RequestContextHolder.resetRequestAttributes();
// }
// };
// });
//
// executor.initialize(); // executor.initialize();
// return executor; // return executor;
// } // }
/**
* 通用异步任务线程池
* @return
*/
@Bean(name = "commonAsyncExecutor")
public ThreadPoolTaskExecutor commonAsyncExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// 设置核心线程数、最大线程数、队列容量等参数...
executor.setCorePoolSize(10);
executor.setMaxPoolSize(20);
executor.setQueueCapacity(100);
executor.setThreadNamePrefix("common-async-");
// 设置 TaskDecorator,用于传递 RequestAttributes
executor.setTaskDecorator(runnable -> {
// 获取当前线程的 RequestAttributes
RequestAttributes attributes = RequestContextHolder.getRequestAttributes();
return () -> {
try {
// 将 RequestAttributes 设置到子线程中
RequestContextHolder.setRequestAttributes(attributes);
runnable.run();
} finally {
// 任务完成后清空,避免内存泄漏
RequestContextHolder.resetRequestAttributes();
}
};
});
executor.initialize();
return executor;
}
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment