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