From 95d367702a208914ce797122377a1d4ad2ab4c23 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 19 十月 2022 16:25:38 +0800
Subject: [PATCH] 增加启动时清理redis中错误zlm数据

---
 src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java   |   10 +++++++++-
 src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java |    1 +
 2 files changed, 10 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java
index 0892243..7a51917 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/XmlUtil.java
@@ -298,6 +298,7 @@
             }else {
                 deviceChannel.setParentId(parentId);
             }
+            // 鍏煎璁惧閫氶亾淇℃伅涓嚜宸变负鑷繁鐖惰妭鐐圭殑鎯呭喌
             if (deviceChannel.getParentId().equals(deviceChannel.getChannelId())) {
                 deviceChannel.setParentId(null);
             }
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
index 3dfb167..195315a 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
@@ -80,6 +80,7 @@
 
         // 鑾峰彇鎵�鏈夌殑zlm锛� 骞跺紑鍚富鍔ㄨ繛鎺�
         List<MediaServerItem> all = mediaServerService.getAllFromDatabase();
+        Map<String, MediaServerItem> allMap = new HashMap<>();
         mediaServerService.updateVmServer(all);
         if (all.size() == 0) {
             all.add(mediaConfig.getMediaSerItem());
@@ -90,6 +91,7 @@
             }
             startGetMedia.put(mediaServerItem.getId(), true);
             connectZlmServer(mediaServerItem);
+            allMap.put(mediaServerItem.getId(), mediaServerItem);
         }
         String taskKey = "zlm-connect-timeout";
         dynamicTask.startDelay(taskKey, ()->{
@@ -100,7 +102,13 @@
                 }
                 startGetMedia = null;
             }
-        //  TODO 娓呯悊鏁版嵁搴撲腑涓巖edis涓嶅尮閰嶇殑zlm
+            // 鑾峰彇redis涓墍鏈夌殑zlm
+            List<MediaServerItem> allInRedis = mediaServerService.getAll();
+            for (MediaServerItem mediaServerItem : allInRedis) {
+                if (!allMap.containsKey(mediaServerItem.getId())) {
+                    mediaServerService.delete(mediaServerItem.getId());
+                }
+            }
         }, 60 * 1000 );
     }
 

--
Gitblit v1.8.0