From 60211f59d2c85053533ed151adb2bdc5348dd342 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期四, 01 八月 2024 09:51:12 +0800
Subject: [PATCH] 修改:会话消息独立线程池;线程池参数统一设置
---
ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java | 111 +++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 83 insertions(+), 28 deletions(-)
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java b/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java
index 4052c82..95838d8 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java
@@ -1,11 +1,15 @@
package com.ruoyi.alarm.config;
+import com.google.errorprone.annotations.Var;
+import org.springframework.beans.factory.annotation.Value;
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;
/**
* @ClassName: AsyncConfiguration
@@ -15,46 +19,97 @@
* @Version: 1.0
**/
@Configuration
-@EnableAsync(proxyTargetClass = true)
-public class AsyncConfiguration {
- @Bean("loginExecutor")
- public Executor executor(){
- ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
- //閰嶇疆鏍稿績绾跨▼鏁�
- executor.setCorePoolSize(15);
- //閰嶇疆鏈�澶х嚎绋嬫暟
- executor.setMaxPoolSize(30);
- //閰嶇疆闃熷垪澶у皬
- executor.setQueueCapacity(1000);
- //绾跨▼鐨勫悕绉板墠缂�
- executor.setThreadNamePrefix("loginExecutor-");
- //绾跨▼娲昏穬鏃堕棿锛堢锛�
- //executor.setKeepAliveSeconds(60);
- //绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
- executor.setWaitForTasksToCompleteOnShutdown(true);
- //璁剧疆鎷掔粷绛栫暐
- //executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
- //鎵ц鍒濆鍖�
- executor.initialize();
- return executor;
- }
+@EnableAsync
+public class AsyncConfiguration{
+ @Value("${ThreadPoolTask.corePoolSize}")
+ Integer corePoolSize;
+ @Value("${ThreadPoolTask.maxPoolSize}")
+ Integer maxPoolSize;
+ @Value("${ThreadPoolTask.keepAliveSeconds}")
+ Integer keepAliveSeconds;
+ @Value("${ThreadPoolTask.queueCapacity}")
+ Integer queueCapacity;
+
@Bean("alarmExecutor")
public Executor alarmExecutor(){
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
//閰嶇疆鏍稿績绾跨▼鏁�
- executor.setCorePoolSize(15);
+ executor.setCorePoolSize(corePoolSize);
//閰嶇疆鏈�澶х嚎绋嬫暟
- executor.setMaxPoolSize(30);
+ executor.setMaxPoolSize(maxPoolSize);
//閰嶇疆闃熷垪澶у皬
- executor.setQueueCapacity(1000);
+ executor.setQueueCapacity(queueCapacity);
//绾跨▼鐨勫悕绉板墠缂�
executor.setThreadNamePrefix("alarmExecutor-");
//绾跨▼娲昏穬鏃堕棿锛堢锛�
- //executor.setKeepAliveSeconds(60);
+ executor.setKeepAliveSeconds(keepAliveSeconds);
//绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
executor.setWaitForTasksToCompleteOnShutdown(true);
//璁剧疆鎷掔粷绛栫暐
- //executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+ //鎵ц鍒濆鍖�
+ executor.initialize();
+ return executor;
+ }
+ @Bean("guideExecutor")
+ public Executor guideExecutor(){
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ //閰嶇疆鏍稿績绾跨▼鏁�
+ executor.setCorePoolSize(corePoolSize);
+ //閰嶇疆鏈�澶х嚎绋嬫暟
+ executor.setMaxPoolSize(maxPoolSize);
+ //閰嶇疆闃熷垪澶у皬
+ executor.setQueueCapacity(queueCapacity);
+ //绾跨▼鐨勫悕绉板墠缂�
+ executor.setThreadNamePrefix("guideExecutor-");
+ //绾跨▼娲昏穬鏃堕棿锛堢锛�
+ executor.setKeepAliveSeconds(keepAliveSeconds);
+ //绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
+ executor.setWaitForTasksToCompleteOnShutdown(true);
+ //璁剧疆鎷掔粷绛栫暐
+ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+ //鎵ц鍒濆鍖�
+ executor.initialize();
+ return executor;
+ }
+ @Bean("globalExecutor")
+ public Executor globalExecutor(){
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ //閰嶇疆鏍稿績绾跨▼鏁�
+ executor.setCorePoolSize(corePoolSize);
+ //閰嶇疆鏈�澶х嚎绋嬫暟
+ executor.setMaxPoolSize(maxPoolSize);
+ //閰嶇疆闃熷垪澶у皬
+ executor.setQueueCapacity(queueCapacity);
+ //绾跨▼鐨勫悕绉板墠缂�
+ executor.setThreadNamePrefix("globalExecutor-");
+ //绾跨▼娲昏穬鏃堕棿锛堢锛�
+ executor.setKeepAliveSeconds(keepAliveSeconds);
+ //绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
+ executor.setWaitForTasksToCompleteOnShutdown(true);
+ //璁剧疆鎷掔粷绛栫暐
+ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+ //鎵ц鍒濆鍖�
+ executor.initialize();
+ return executor;
+ }
+ @Bean("msgExecutor")
+ public Executor msgExecutor(){
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ //閰嶇疆鏍稿績绾跨▼鏁�
+ executor.setCorePoolSize(corePoolSize);
+ //閰嶇疆鏈�澶х嚎绋嬫暟
+ executor.setMaxPoolSize(maxPoolSize);
+ //閰嶇疆闃熷垪澶у皬
+ executor.setQueueCapacity(queueCapacity);
+ //绾跨▼鐨勫悕绉板墠缂�
+ executor.setThreadNamePrefix("msgExecutor-");
+ //绾跨▼娲昏穬鏃堕棿锛堢锛�
+ executor.setKeepAliveSeconds(keepAliveSeconds);
+ //绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
+ executor.setWaitForTasksToCompleteOnShutdown(true);
+ //璁剧疆鎷掔粷绛栫暐
+ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
//鎵ц鍒濆鍖�
executor.initialize();
return executor;
--
Gitblit v1.9.3