From 9d61a93077d22dec47760c294a8658f5a5223b67 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 03 一月 2024 15:50:47 +0800
Subject: [PATCH] 优化数据库sql文件组织方式
---
src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java | 77 ++++++++++++++++++++++++++++----------
1 files changed, 56 insertions(+), 21 deletions(-)
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
old mode 100644
new mode 100755
index 6e46082..752d063
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/InviteStreamServiceImpl.java
@@ -77,10 +77,11 @@
}
String key = VideoManagerConstants.INVITE_PREFIX +
- "_" + inviteInfoForUpdate.getType() +
- "_" + inviteInfoForUpdate.getDeviceId() +
- "_" + inviteInfoForUpdate.getChannelId() +
- "_" + inviteInfoForUpdate.getStream();
+ ":" + inviteInfoForUpdate.getType() +
+ ":" + inviteInfoForUpdate.getDeviceId() +
+ ":" + inviteInfoForUpdate.getChannelId() +
+ ":" + inviteInfoForUpdate.getStream()+
+ ":" + inviteInfoForUpdate.getSsrcInfo().getSsrc();
redisTemplate.opsForValue().set(key, inviteInfoForUpdate);
}
@@ -93,10 +94,11 @@
}
removeInviteInfo(inviteInfoInDb);
String key = VideoManagerConstants.INVITE_PREFIX +
- "_" + inviteInfo.getType() +
- "_" + inviteInfo.getDeviceId() +
- "_" + inviteInfo.getChannelId() +
- "_" + stream;
+ ":" + inviteInfo.getType() +
+ ":" + inviteInfo.getDeviceId() +
+ ":" + inviteInfo.getChannelId() +
+ ":" + stream +
+ ":" + inviteInfo.getSsrcInfo().getSsrc();
inviteInfoInDb.setStream(stream);
if (inviteInfoInDb.getSsrcInfo() != null) {
inviteInfoInDb.getSsrcInfo().setStream(stream);
@@ -108,10 +110,11 @@
@Override
public InviteInfo getInviteInfo(InviteSessionType type, String deviceId, String channelId, String stream) {
String key = VideoManagerConstants.INVITE_PREFIX +
- "_" + (type != null ? type : "*") +
- "_" + (deviceId != null ? deviceId : "*") +
- "_" + (channelId != null ? channelId : "*") +
- "_" + (stream != null ? stream : "*");
+ ":" + (type != null ? type : "*") +
+ ":" + (deviceId != null ? deviceId : "*") +
+ ":" + (channelId != null ? channelId : "*") +
+ ":" + (stream != null ? stream : "*")
+ + ":*";
List<Object> scanResult = RedisUtil.scan(redisTemplate, key);
if (scanResult.size() != 1) {
return null;
@@ -133,10 +136,11 @@
@Override
public void removeInviteInfo(InviteSessionType type, String deviceId, String channelId, String stream) {
String scanKey = VideoManagerConstants.INVITE_PREFIX +
- "_" + (type != null ? type : "*") +
- "_" + (deviceId != null ? deviceId : "*") +
- "_" + (channelId != null ? channelId : "*") +
- "_" + (stream != null ? stream : "*");
+ ":" + (type != null ? type : "*") +
+ ":" + (deviceId != null ? deviceId : "*") +
+ ":" + (channelId != null ? channelId : "*") +
+ ":" + (stream != null ? stream : "*") +
+ ":*";
List<Object> scanResult = RedisUtil.scan(redisTemplate, scanKey);
if (scanResult.size() > 0) {
for (Object keyObj : scanResult) {
@@ -174,10 +178,10 @@
}
private String buildKey(InviteSessionType type, String deviceId, String channelId, String stream) {
- String key = type + "_" + deviceId + "_" + channelId;
+ String key = type + ":" + deviceId + ":" + channelId;
// 濡傛灉ssrc鏈猲ull閭d箞鍙互瀹炵幇涓�涓�氶亾鍙兘涓�娆℃搷浣滐紝ssrc涓嶄负null鍒欏彲浠ユ敮鎸佷竴涓�氶亾澶氭invite
if (stream != null) {
- key += ("_" + stream);
+ key += (":" + stream);
}
return key;
}
@@ -191,7 +195,7 @@
@Override
public int getStreamInfoCount(String mediaServerId) {
int count = 0;
- String key = VideoManagerConstants.INVITE_PREFIX + "_*_*_*_*";
+ String key = VideoManagerConstants.INVITE_PREFIX + ":*:*:*:*:*";
List<Object> scanResult = RedisUtil.scan(redisTemplate, key);
if (scanResult.size() == 0) {
return 0;
@@ -222,11 +226,42 @@
private String buildSubStreamKey(InviteSessionType type, String deviceId, String channelId, String stream) {
- String key = type + "_" + "_" + deviceId + "_" + channelId;
+ String key = type + ":" + ":" + deviceId + ":" + channelId;
// 濡傛灉ssrc涓簄ull閭d箞鍙互瀹炵幇涓�涓�氶亾鍙兘涓�娆℃搷浣滐紝ssrc涓嶄负null鍒欏彲浠ユ敮鎸佷竴涓�氶亾澶氭invite
if (stream != null) {
- key += ("_" + stream);
+ key += (":" + stream);
}
return key;
}
+
+ @Override
+ public InviteInfo getInviteInfoBySSRC(String ssrc) {
+ String key = VideoManagerConstants.INVITE_PREFIX + ":*:*:*:*:" + ssrc;
+ List<Object> scanResult = RedisUtil.scan(redisTemplate, key);
+ if (scanResult.size() != 1) {
+ return null;
+ }
+
+ return (InviteInfo) redisTemplate.opsForValue().get(scanResult.get(0));
+ }
+
+ @Override
+ public InviteInfo updateInviteInfoForSSRC(InviteInfo inviteInfo, String ssrc) {
+ InviteInfo inviteInfoInDb = getInviteInfo(inviteInfo.getType(), inviteInfo.getDeviceId(), inviteInfo.getChannelId(), inviteInfo.getStream());
+ if (inviteInfoInDb == null) {
+ return null;
+ }
+ removeInviteInfo(inviteInfoInDb);
+ String key = VideoManagerConstants.INVITE_PREFIX +
+ ":" + inviteInfo.getType() +
+ ":" + inviteInfo.getDeviceId() +
+ ":" + inviteInfo.getChannelId() +
+ ":" + inviteInfo.getStream() +
+ ":" + ssrc;
+ if (inviteInfoInDb.getSsrcInfo() != null) {
+ inviteInfoInDb.getSsrcInfo().setSsrc(ssrc);
+ }
+ redisTemplate.opsForValue().set(key, inviteInfoInDb);
+ return inviteInfoInDb;
+ }
}
--
Gitblit v1.8.0