From dfb87c768538e280cf5e17d1d5ee5bbed1e1888d Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 25 十一月 2022 10:58:26 +0800
Subject: [PATCH] 合并主线

---
 src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java |   35 ++++++++++++++++++++++++++---------
 1 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
index 84f5ef7..57285a4 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/redisMsg/RedisAlarmMsgListener.java
@@ -1,6 +1,6 @@
 package com.genersoft.iot.vmp.service.redisMsg;
 
-import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson2.JSON;
 import com.genersoft.iot.vmp.gb28181.bean.*;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
@@ -16,6 +16,10 @@
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
 
+import javax.sip.InvalidArgumentException;
+import javax.sip.SipException;
+import javax.validation.constraints.NotNull;
+import java.text.ParseException;
 import java.util.List;
 import java.util.concurrent.ConcurrentLinkedQueue;
 
@@ -36,19 +40,20 @@
 
     private boolean taskQueueHandlerRun = false;
 
-    private final ConcurrentLinkedQueue<Message> taskQueue = new ConcurrentLinkedQueue<>();
+    private ConcurrentLinkedQueue<Message> taskQueue = new ConcurrentLinkedQueue<>();
 
     @Qualifier("taskExecutor")
     @Autowired
     private ThreadPoolTaskExecutor taskExecutor;
 
     @Override
-    public void onMessage(Message message, byte[] bytes) {
+    public void onMessage(@NotNull Message message, byte[] bytes) {
         logger.info("鏀跺埌鏉ヨ嚜REDIS鐨凙LARM閫氱煡锛� {}", new String(message.getBody()));
 
         taskQueue.offer(message);
         if (!taskQueueHandlerRun) {
             taskQueueHandlerRun = true;
+            logger.info("[绾跨▼姹犱俊鎭痌娲诲姩绾跨▼鏁帮細{}, 鏈�澶х嚎绋嬫暟锛� {}", taskExecutor.getActiveCount(), taskExecutor.getMaxPoolSize());
             taskExecutor.execute(() -> {
                 while (!taskQueue.isEmpty()) {
                     Message msg = taskQueue.poll();
@@ -56,7 +61,7 @@
                     AlarmChannelMessage alarmChannelMessage = JSON.parseObject(msg.getBody(), AlarmChannelMessage.class);
                     if (alarmChannelMessage == null) {
                         logger.warn("[REDIS鐨凙LARM閫氱煡]娑堟伅瑙f瀽澶辫触");
-                        return;
+                        continue;
                     }
                     String gbId = alarmChannelMessage.getGbId();
 
@@ -68,24 +73,36 @@
                     deviceAlarm.setAlarmPriority("1");
                     deviceAlarm.setAlarmTime(DateUtil.getNowForISO8601());
                     deviceAlarm.setAlarmType("1");
-                    deviceAlarm.setLongitude(0);
-                    deviceAlarm.setLatitude(0);
+                    deviceAlarm.setLongitude(0D);
+                    deviceAlarm.setLatitude(0D);
 
                     if (ObjectUtils.isEmpty(gbId)) {
                         // 鍙戦�佺粰鎵�鏈夌殑涓婄骇
                         List<ParentPlatform> parentPlatforms = storage.queryEnableParentPlatformList(true);
                         if (parentPlatforms.size() > 0) {
                             for (ParentPlatform parentPlatform : parentPlatforms) {
-                                commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm);
+                                try {
+                                    commanderForPlatform.sendAlarmMessage(parentPlatform, deviceAlarm);
+                                } catch (SipException | InvalidArgumentException | ParseException e) {
+                                    logger.error("[鍛戒护鍙戦�佸け璐 鍥芥爣绾ц仈 鍙戦�佹姤璀�: {}", e.getMessage());
+                                }
                             }
                         }
                     }else {
                         Device device = storage.queryVideoDevice(gbId);
                         ParentPlatform platform = storage.queryParentPlatByServerGBId(gbId);
                         if (device != null && platform == null) {
-                            commander.sendAlarmMessage(device, deviceAlarm);
+                            try {
+                                commander.sendAlarmMessage(device, deviceAlarm);
+                            } catch (InvalidArgumentException | SipException | ParseException e) {
+                                logger.error("[鍛戒护鍙戦�佸け璐 鍙戦�佹姤璀�: {}", e.getMessage());
+                            }
                         }else if (device == null && platform != null){
-                            commanderForPlatform.sendAlarmMessage(platform, deviceAlarm);
+                            try {
+                                commanderForPlatform.sendAlarmMessage(platform, deviceAlarm);
+                            } catch (InvalidArgumentException | SipException | ParseException e) {
+                                logger.error("[鍛戒护鍙戦�佸け璐 鍙戦�佹姤璀�: {}", e.getMessage());
+                            }
                         }else {
                             logger.warn("鏃犳硶纭畾" + gbId + "鏄钩鍙拌繕鏄澶�");
                         }

--
Gitblit v1.8.0