From 9ff1613d3b39475a72b1f5ed10db525bb9f5db6e Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 30 五月 2023 10:54:09 +0800
Subject: [PATCH] 修复web端管理节点负载不显示国标收流 #871
---
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 9 ---------
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java | 2 --
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 7 ++++++-
src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java | 5 +++++
src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java | 19 +++++++++++++++++++
5 files changed, 30 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java b/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java
index fd38839..852a408 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java
@@ -65,4 +65,9 @@
* 娓呯┖涓�涓澶囩殑鎵�鏈塱nvite淇℃伅
*/
void clearInviteInfo(String deviceId);
+
+ /**
+ * 缁熻鍚屼竴涓獄lm涓嬬殑鍥芥爣鏀舵祦涓暟
+ */
+ int getStreamInfoCount(String mediaServerId);
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
index 19e82d4..2fb6816 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
@@ -179,4 +179,23 @@
public void clearInviteInfo(String deviceId) {
removeInviteInfo(null, deviceId, null, null);
}
+
+ @Override
+ public int getStreamInfoCount(String mediaServerId) {
+ int count = 0;
+ String key = VideoManagerConstants.INVITE_PREFIX + "_*_*_*_*";
+ List<Object> scanResult = RedisUtil.scan(redisTemplate, key);
+ if (scanResult.size() == 0) {
+ return 0;
+ }else {
+ for (Object keyObj : scanResult) {
+ String keyStr = (String) keyObj;
+ InviteInfo inviteInfo = (InviteInfo) redisTemplate.opsForValue().get(keyStr);
+ if (inviteInfo != null && inviteInfo.getStreamInfo() != null && inviteInfo.getStreamInfo().getMediaServerId().equals(mediaServerId)) {
+ count++;
+ }
+ }
+ }
+ return count;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
index 230ce27..d997a43 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
@@ -17,6 +17,7 @@
import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.ServerKeepaliveData;
+import com.genersoft.iot.vmp.service.IInviteStreamService;
import com.genersoft.iot.vmp.service.IMediaServerService;
import com.genersoft.iot.vmp.service.bean.MediaServerLoad;
import com.genersoft.iot.vmp.service.bean.SSRCInfo;
@@ -96,6 +97,9 @@
@Autowired
private IRedisCatchStorage redisCatchStorage;
+
+ @Autowired
+ private IInviteStreamService inviteStreamService;
@Autowired
private RedisTemplate<Object, Object> redisTemplate;
@@ -735,7 +739,8 @@
result.setId(mediaServerItem.getId());
result.setPush(redisCatchStorage.getPushStreamCount(mediaServerItem.getId()));
result.setProxy(redisCatchStorage.getProxyStreamCount(mediaServerItem.getId()));
- result.setGbReceive(redisCatchStorage.getGbReceiveCount(mediaServerItem.getId()));
+
+ result.setGbReceive(inviteStreamService.getStreamInfoCount(mediaServerItem.getId()));
result.setGbSend(redisCatchStorage.getGbSendCount(mediaServerItem.getId()));
return result;
}
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 ec93e78..5e6c16b 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
@@ -191,8 +191,6 @@
int getProxyStreamCount(String id);
- int getGbReceiveCount(String id);
-
int getGbSendCount(String id);
void addDiskInfo(List<Map<String, Object>> diskInfo);
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 e9dbd3b..75e9198 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
@@ -587,15 +587,6 @@
}
@Override
- public int getGbReceiveCount(String id) {
- String playKey = VideoManagerConstants.PLAYER_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*";
- String playBackKey = VideoManagerConstants.PLAY_BLACK_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*";
- String downloadKey = VideoManagerConstants.DOWNLOAD_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*";
-
- return RedisUtil.scan(redisTemplate, playKey).size() + RedisUtil.scan(redisTemplate, playBackKey).size() + RedisUtil.scan(redisTemplate, downloadKey).size();
- }
-
- @Override
public int getGbSendCount(String id) {
String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX
+ userSetting.getServerId() + "_*_" + id + "_*";
--
Gitblit v1.8.0