From d09ee0c2ff93c799b0c19481f0890a5be5a2db03 Mon Sep 17 00:00:00 2001
From: 64850858 <648540858@qq.com>
Date: 星期五, 18 六月 2021 19:44:55 +0800
Subject: [PATCH] 解决启动设置所有设备离线未删除redis记录

---
 src/main/java/com/genersoft/iot/vmp/conf/SipDeviceRunner.java                |    2 ++
 src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java |    9 +++++++++
 src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java         |    5 +++++
 src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java        |    2 +-
 4 files changed, 17 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java b/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java
index 6d8f45d..5eab234 100644
--- a/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java
+++ b/src/main/java/com/genersoft/iot/vmp/common/VideoManagerConstants.java
@@ -16,7 +16,7 @@
 
 	public static final String CACHEKEY_PREFIX = "VMP_channel_";
 
-	public static final String KEEPLIVEKEY_PREFIX = "VMP_keeplive_";
+	public static final String KEEPLIVEKEY_PREFIX = "VMP_KEEPLIVE_";
 
 	public static final String PLAYER_PREFIX = "VMP_player_";
 
diff --git a/src/main/java/com/genersoft/iot/vmp/conf/SipDeviceRunner.java b/src/main/java/com/genersoft/iot/vmp/conf/SipDeviceRunner.java
index fbe07c7..62eecc6 100644
--- a/src/main/java/com/genersoft/iot/vmp/conf/SipDeviceRunner.java
+++ b/src/main/java/com/genersoft/iot/vmp/conf/SipDeviceRunner.java
@@ -29,5 +29,7 @@
     public void run(String... args) throws Exception {
         // 璁剧疆鎵�鏈夎澶囩绾�
         storager.outlineForAll();
+        // 璁剧疆鎵�鏈夎澶囩绾�
+        redisCatchStorage.outlineForAll();
     }
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
index be9fdff..649fb71 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
@@ -112,4 +112,9 @@
      * @param deviceId 璁惧ID
      */
     void clearCatchByDeviceId(String deviceId);
+
+    /**
+     * 璁剧疆鎵�鏈夎澶囩绾�
+     */
+    void outlineForAll();
 }
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index 1c6409f..2120415 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -293,4 +293,13 @@
             }
         }
     }
+
+    @Override
+    public void outlineForAll() {
+        List<Object> onlineDevices = redis.scan(String.format("%S*", VideoManagerConstants.KEEPLIVEKEY_PREFIX));
+        for (int i = 0; i < onlineDevices.size(); i++) {
+            String key = (String) onlineDevices.get(i);
+            redis.del(key);
+        }
+    }
 }

--
Gitblit v1.8.0