Commit 2627431d by zhangxingmin

push

parent 9b72debe
......@@ -39,54 +39,54 @@ public class AsyncConfig {
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")
// public ThreadPoolTaskExecutor commonAsyncExecutor() {
// @Bean("commonAsyncExecutor")
// public Executor commonAsyncExecutor() {
// ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
// // 设置核心线程数、最大线程数、队列容量等参数...
// executor.setCorePoolSize(10);
// executor.setMaxPoolSize(20);
// executor.setQueueCapacity(100);
// executor.setCorePoolSize(5);
// executor.setMaxPoolSize(10);
// executor.setQueueCapacity(50);
// 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.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
// executor.setWaitForTasksToCompleteOnShutdown(true);
// executor.setAwaitTerminationSeconds(30);
// executor.setKeepAliveSeconds(30);
// executor.initialize();
// 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