Commit 9ff1613d3b39475a72b1f5ed10db525bb9f5db6e
1 parent
50240b4e
修复web端管理节点负载不显示国标收流 #871
Showing
5 changed files
with
30 additions
and
12 deletions
src/main/java/com/genersoft/iot/vmp/service/IInviteStreamService.java
| @@ -65,4 +65,9 @@ public interface IInviteStreamService { | @@ -65,4 +65,9 @@ public interface IInviteStreamService { | ||
| 65 | * 清空一个设备的所有invite信息 | 65 | * 清空一个设备的所有invite信息 |
| 66 | */ | 66 | */ |
| 67 | void clearInviteInfo(String deviceId); | 67 | void clearInviteInfo(String deviceId); |
| 68 | + | ||
| 69 | + /** | ||
| 70 | + * 统计同一个zlm下的国标收流个数 | ||
| 71 | + */ | ||
| 72 | + int getStreamInfoCount(String mediaServerId); | ||
| 68 | } | 73 | } |
src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
| @@ -179,4 +179,23 @@ public class InviteStreamServiceImpl implements IInviteStreamService { | @@ -179,4 +179,23 @@ public class InviteStreamServiceImpl implements IInviteStreamService { | ||
| 179 | public void clearInviteInfo(String deviceId) { | 179 | public void clearInviteInfo(String deviceId) { |
| 180 | removeInviteInfo(null, deviceId, null, null); | 180 | removeInviteInfo(null, deviceId, null, null); |
| 181 | } | 181 | } |
| 182 | + | ||
| 183 | + @Override | ||
| 184 | + public int getStreamInfoCount(String mediaServerId) { | ||
| 185 | + int count = 0; | ||
| 186 | + String key = VideoManagerConstants.INVITE_PREFIX + "_*_*_*_*"; | ||
| 187 | + List<Object> scanResult = RedisUtil.scan(redisTemplate, key); | ||
| 188 | + if (scanResult.size() == 0) { | ||
| 189 | + return 0; | ||
| 190 | + }else { | ||
| 191 | + for (Object keyObj : scanResult) { | ||
| 192 | + String keyStr = (String) keyObj; | ||
| 193 | + InviteInfo inviteInfo = (InviteInfo) redisTemplate.opsForValue().get(keyStr); | ||
| 194 | + if (inviteInfo != null && inviteInfo.getStreamInfo() != null && inviteInfo.getStreamInfo().getMediaServerId().equals(mediaServerId)) { | ||
| 195 | + count++; | ||
| 196 | + } | ||
| 197 | + } | ||
| 198 | + } | ||
| 199 | + return count; | ||
| 200 | + } | ||
| 182 | } | 201 | } |
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
| @@ -17,6 +17,7 @@ import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; | @@ -17,6 +17,7 @@ import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; | ||
| 17 | import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; | 17 | import com.genersoft.iot.vmp.media.zlm.ZLMServerConfig; |
| 18 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; | 18 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| 19 | import com.genersoft.iot.vmp.media.zlm.dto.ServerKeepaliveData; | 19 | import com.genersoft.iot.vmp.media.zlm.dto.ServerKeepaliveData; |
| 20 | +import com.genersoft.iot.vmp.service.IInviteStreamService; | ||
| 20 | import com.genersoft.iot.vmp.service.IMediaServerService; | 21 | import com.genersoft.iot.vmp.service.IMediaServerService; |
| 21 | import com.genersoft.iot.vmp.service.bean.MediaServerLoad; | 22 | import com.genersoft.iot.vmp.service.bean.MediaServerLoad; |
| 22 | import com.genersoft.iot.vmp.service.bean.SSRCInfo; | 23 | import com.genersoft.iot.vmp.service.bean.SSRCInfo; |
| @@ -98,6 +99,9 @@ public class MediaServerServiceImpl implements IMediaServerService { | @@ -98,6 +99,9 @@ public class MediaServerServiceImpl implements IMediaServerService { | ||
| 98 | private IRedisCatchStorage redisCatchStorage; | 99 | private IRedisCatchStorage redisCatchStorage; |
| 99 | 100 | ||
| 100 | @Autowired | 101 | @Autowired |
| 102 | + private IInviteStreamService inviteStreamService; | ||
| 103 | + | ||
| 104 | + @Autowired | ||
| 101 | private RedisTemplate<Object, Object> redisTemplate; | 105 | private RedisTemplate<Object, Object> redisTemplate; |
| 102 | 106 | ||
| 103 | 107 | ||
| @@ -735,7 +739,8 @@ public class MediaServerServiceImpl implements IMediaServerService { | @@ -735,7 +739,8 @@ public class MediaServerServiceImpl implements IMediaServerService { | ||
| 735 | result.setId(mediaServerItem.getId()); | 739 | result.setId(mediaServerItem.getId()); |
| 736 | result.setPush(redisCatchStorage.getPushStreamCount(mediaServerItem.getId())); | 740 | result.setPush(redisCatchStorage.getPushStreamCount(mediaServerItem.getId())); |
| 737 | result.setProxy(redisCatchStorage.getProxyStreamCount(mediaServerItem.getId())); | 741 | result.setProxy(redisCatchStorage.getProxyStreamCount(mediaServerItem.getId())); |
| 738 | - result.setGbReceive(redisCatchStorage.getGbReceiveCount(mediaServerItem.getId())); | 742 | + |
| 743 | + result.setGbReceive(inviteStreamService.getStreamInfoCount(mediaServerItem.getId())); | ||
| 739 | result.setGbSend(redisCatchStorage.getGbSendCount(mediaServerItem.getId())); | 744 | result.setGbSend(redisCatchStorage.getGbSendCount(mediaServerItem.getId())); |
| 740 | return result; | 745 | return result; |
| 741 | } | 746 | } |
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
| @@ -191,8 +191,6 @@ public interface IRedisCatchStorage { | @@ -191,8 +191,6 @@ public interface IRedisCatchStorage { | ||
| 191 | 191 | ||
| 192 | int getProxyStreamCount(String id); | 192 | int getProxyStreamCount(String id); |
| 193 | 193 | ||
| 194 | - int getGbReceiveCount(String id); | ||
| 195 | - | ||
| 196 | int getGbSendCount(String id); | 194 | int getGbSendCount(String id); |
| 197 | 195 | ||
| 198 | void addDiskInfo(List<Map<String, Object>> diskInfo); | 196 | void addDiskInfo(List<Map<String, Object>> diskInfo); |
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
| @@ -587,15 +587,6 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage { | @@ -587,15 +587,6 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage { | ||
| 587 | } | 587 | } |
| 588 | 588 | ||
| 589 | @Override | 589 | @Override |
| 590 | - public int getGbReceiveCount(String id) { | ||
| 591 | - String playKey = VideoManagerConstants.PLAYER_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*"; | ||
| 592 | - String playBackKey = VideoManagerConstants.PLAY_BLACK_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*"; | ||
| 593 | - String downloadKey = VideoManagerConstants.DOWNLOAD_PREFIX + "_" + userSetting.getServerId() + "_" + id + "_*"; | ||
| 594 | - | ||
| 595 | - return RedisUtil.scan(redisTemplate, playKey).size() + RedisUtil.scan(redisTemplate, playBackKey).size() + RedisUtil.scan(redisTemplate, downloadKey).size(); | ||
| 596 | - } | ||
| 597 | - | ||
| 598 | - @Override | ||
| 599 | public int getGbSendCount(String id) { | 590 | public int getGbSendCount(String id) { |
| 600 | String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX | 591 | String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX |
| 601 | + userSetting.getServerId() + "_*_" + id + "_*"; | 592 | + userSetting.getServerId() + "_*_" + id + "_*"; |