From cf4afcc8902efc85f1e71f26073404a0a7a4f204 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期三, 31 七月 2024 09:48:41 +0800
Subject: [PATCH] 修改:异步async指定线程池
---
ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java | 4 +-
ard-work/src/main/java/com/ruoyi/alarm/config/AsyncConfiguration.java | 46 ++++++++++++-----------
ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java | 2
ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java | 13 ------
ard-work/src/main/java/com/ruoyi/call/listener/MsgListener.java | 2
ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java | 2
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java | 2
7 files changed, 31 insertions(+), 40 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 bba963a..7ce10af 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
@@ -4,6 +4,7 @@
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;
@@ -19,7 +20,7 @@
**/
@Configuration
@EnableAsync
-public class AsyncConfiguration {
+public class AsyncConfiguration{
@Value("${ThreadPoolTask.corePoolSize}")
Integer corePoolSize;
@Value("${ThreadPoolTask.maxPoolSize}")
@@ -40,27 +41,6 @@
executor.setQueueCapacity(queueCapacity);
//绾跨▼鐨勫悕绉板墠缂�
executor.setThreadNamePrefix("alarmExecutor-");
- //绾跨▼娲昏穬鏃堕棿锛堢锛�
- executor.setKeepAliveSeconds(keepAliveSeconds);
- //绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
- executor.setWaitForTasksToCompleteOnShutdown(true);
- //璁剧疆鎷掔粷绛栫暐
- executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
- //鎵ц鍒濆鍖�
- executor.initialize();
- return executor;
- }
- @Bean("loginExecutor")
- public Executor loginExecutor(){
- ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
- //閰嶇疆鏍稿績绾跨▼鏁�
- executor.setCorePoolSize(corePoolSize);
- //閰嶇疆鏈�澶х嚎绋嬫暟
- executor.setMaxPoolSize(maxPoolSize);
- //閰嶇疆闃熷垪澶у皬
- executor.setQueueCapacity(queueCapacity);
- //绾跨▼鐨勫悕绉板墠缂�
- executor.setThreadNamePrefix("loginExecutor-");
//绾跨▼娲昏穬鏃堕棿锛堢锛�
executor.setKeepAliveSeconds(keepAliveSeconds);
//绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
@@ -92,4 +72,26 @@
executor.initialize();
return executor;
}
+ @Bean("globalExecutor")
+ public Executor globalExecutor(){
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ //閰嶇疆鏍稿績绾跨▼鏁�
+ executor.setCorePoolSize(10);
+ //閰嶇疆鏈�澶х嚎绋嬫暟
+ executor.setMaxPoolSize(15);
+ //閰嶇疆闃熷垪澶у皬
+ executor.setQueueCapacity(25);
+ //绾跨▼鐨勫悕绉板墠缂�
+ executor.setThreadNamePrefix("globalExecutor-");
+ //绾跨▼娲昏穬鏃堕棿锛堢锛�
+ executor.setKeepAliveSeconds(keepAliveSeconds);
+ //绛夊緟鎵�鏈変换鍔$粨鏉熷悗鍐嶅叧闂嚎绋嬫睜
+ executor.setWaitForTasksToCompleteOnShutdown(true);
+ //璁剧疆鎷掔粷绛栫暐
+ executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
+ //鎵ц鍒濆鍖�
+ executor.initialize();
+ return executor;
+ }
+
}
diff --git a/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java
index 9626ed2..0a0e6a1 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/radar/service/impl/ArdRadarServiceImpl.java
@@ -43,7 +43,7 @@
* 2023/11/2 9:00:55
*/
@Override
- @Async
+ @Async("globalExecutor")
public void forceGuide(String msg) {
try {
Map<String, Object> msgMap = JSONObject.parseObject(msg, Map.class);
@@ -86,7 +86,7 @@
* 2023/11/2 9:00:55
*/
@Override
- @Async
+ @Async("globalExecutor")
public void followGuide(String msg) {
try {
RadarAlarmData radarFollowData = JSONObject.parseObject(msg, RadarAlarmData.class);
diff --git a/ard-work/src/main/java/com/ruoyi/call/listener/MsgListener.java b/ard-work/src/main/java/com/ruoyi/call/listener/MsgListener.java
index 08f43ec..552c9d2 100644
--- a/ard-work/src/main/java/com/ruoyi/call/listener/MsgListener.java
+++ b/ard-work/src/main/java/com/ruoyi/call/listener/MsgListener.java
@@ -26,7 +26,7 @@
@Slf4j(topic = "msgListener")
public class MsgListener {
- @Async
+ @Async("globalExecutor")
@EventListener(MessageEvent.class)
public void ArdCallHistoryEventListener(MessageEvent messageEvent) {
log.debug("鐩戝惉鍒颁細璇濇秷鎭簨浠�:"+messageEvent.getArdCallHistory().getContent());
diff --git a/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java b/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
index d5f2c06..5010b99 100644
--- a/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/storage/minio/service/impl/StorageMinioEventServiceImpl.java
@@ -108,7 +108,7 @@
return storageMinioEventMapper.deleteStorageMinioEventById(id);
}
- @Async
+ @Async("globalExecutor")
@Override
public void parseStorageMinioEvent(String message) {
try {
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
index fe9af52..5d1c7e8 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -134,7 +134,7 @@
}
@Override
- @Async("loginExecutor")
+ @Async("globalExecutor")
public AjaxResult asyncLogin(ArdCameras camera) {
try {
LoginModule.init(disConnect, haveReConnect);
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
index 3dc494e..e622d1c 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -184,7 +184,7 @@
* @淇敼浜哄拰鍏跺畠淇℃伅
*/
@Override
- @Async("loginExecutor")
+ @Async("globalExecutor")
public AjaxResult asyncLogin(ArdCameras camera) {
try {
// 鍒濆鍖�
@@ -237,17 +237,6 @@
return AjaxResult.warn("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触: " + SdkErrorCodeEnum.getDescByCode(errorCode) + "(" + errorCode + ")");
}
log.debug("Login Success 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�");
- synchronized (_lock) {
- if (fExceptionCallBack == null) {
- fExceptionCallBack = new ExceptionCallBack();//寮傚父鍥炶皟
- //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑)
- if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) {
- log.debug("Set fExceptionCallBack function fail");
- } else {
- log.debug("Set fExceptionCallBack function successfully!");
- }
- }
- }
GlobalVariable.loginMap.put(camera.getId(), lUserID);
GlobalVariable.loginCameraMap.put(lUserID, camera);
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index aa97e37..c1d6552 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -152,7 +152,7 @@
*
* @param loginUser 鐧诲綍鐢ㄦ埛
*/
- @Async
+ @Async("globalExecutor")
public String getRongCloudToken(LoginUser loginUser) {
try {
String userId = loginUser.getUserId();
--
Gitblit v1.9.3