From 60211f59d2c85053533ed151adb2bdc5348dd342 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Thu, 01 Aug 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