From 0c14970ab8755c698d4bbd57fab3f8001958d897 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 07 六月 2023 21:11:39 +0800
Subject: [PATCH] 增加收到notify增加或移除通道时发送redis消息
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java | 13 +++++++++++++
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 15 +++++++++++++++
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java | 1 +
3 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
index e614bf9..c0b1be4 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java
@@ -175,6 +175,11 @@
}
}else {
addChannelMap.put(channel.getChannelId(), channel);
+ if (userSetting.getDeviceStatusNotify()) {
+ // 鍙戦�乺edis娑堟伅
+ redisCatchStorage.sendChannelAddOrDelete(device.getDeviceId(), channel.getChannelId(), true);
+ }
+
if (addChannelMap.keySet().size() > 300) {
executeSaveForAdd();
}
@@ -185,6 +190,10 @@
// 鍒犻櫎
logger.info("[鏀跺埌鍒犻櫎閫氶亾閫氱煡] 鏉ヨ嚜璁惧: {}, 閫氶亾 {}", device.getDeviceId(), channel.getChannelId());
deleteChannelList.add(channel);
+ if (userSetting.getDeviceStatusNotify()) {
+ // 鍙戦�乺edis娑堟伅
+ redisCatchStorage.sendChannelAddOrDelete(device.getDeviceId(), channel.getChannelId(), false);
+ }
if (deleteChannelList.size() > 300) {
executeSaveForDelete();
}
@@ -205,6 +214,10 @@
if (addChannelMap.keySet().size() > 300) {
executeSaveForAdd();
}
+ if (userSetting.getDeviceStatusNotify()) {
+ // 鍙戦�乺edis娑堟伅
+ redisCatchStorage.sendChannelAddOrDelete(device.getDeviceId(), channel.getChannelId(), true);
+ }
}
break;
default:
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 5e6c16b..469f6c8 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
@@ -202,4 +202,5 @@
void removeAllDevice();
void sendDeviceOrChannelStatus(String deviceId, String channelId, boolean online);
+ void sendChannelAddOrDelete(String deviceId, String channelId, boolean add);
}
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 75e9198..7ef4f68 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
@@ -611,4 +611,19 @@
// 浣跨敤 RedisTemplate<Object, Object> 鍙戦�佸瓧绗︿覆娑堟伅浼氬鑷村彂閫佺殑娑堟伅澶氬甫浜嗗弻寮曞彿
stringRedisTemplate.convertAndSend(key, msg.toString());
}
+
+ @Override
+ public void sendChannelAddOrDelete(String deviceId, String channelId, boolean add) {
+ String key = VideoManagerConstants.VM_MSG_SUBSCRIBE_DEVICE_STATUS;
+ logger.info("[redis閫氱煡] 鎺ㄩ�侀�氶亾{}锛� {}/{}", add?"澧炲姞":"绉婚櫎", deviceId, channelId);
+
+ StringBuilder msg = new StringBuilder();
+ msg.append(deviceId);
+ if (channelId != null) {
+ msg.append(":").append(channelId);
+ }
+ msg.append(" ").append(add? "ADD":"DELETE");
+ // 浣跨敤 RedisTemplate<Object, Object> 鍙戦�佸瓧绗︿覆娑堟伅浼氬鑷村彂閫佺殑娑堟伅澶氬甫浜嗗弻寮曞彿
+ stringRedisTemplate.convertAndSend(key, msg.toString());
+ }
}
--
Gitblit v1.8.0