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