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