优化hook处理速度

This commit is contained in:
648540858
2022-11-08 19:58:36 +08:00
parent f762e03f0b
commit 4c8e2beb4d
24 changed files with 513 additions and 475 deletions

View File

@@ -5,9 +5,9 @@ import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.common.SystemAllInfo;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.zlm.dto.*;
import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.MessageForPushChannel;
import com.genersoft.iot.vmp.service.bean.SSRCInfo;
import com.genersoft.iot.vmp.service.bean.ThirdPartyGB;
import com.genersoft.iot.vmp.storager.dao.dto.PlatformRegisterInfo;
@@ -131,7 +131,7 @@ public interface IRedisCatchStorage {
* @param app
* @param streamId
*/
void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, MediaItem item);
void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, OnStreamChangedHookParam item);
/**
* 移除流信息从redis
@@ -165,7 +165,7 @@ public interface IRedisCatchStorage {
*/
ThirdPartyGB queryMemberNoGBId(String queryKey);
List<MediaItem> getStreams(String mediaServerId, String pull);
List<OnStreamChangedHookParam> getStreams(String mediaServerId, String pull);
/**
* 将device信息写入redis
@@ -191,7 +191,7 @@ public interface IRedisCatchStorage {
void resetAllSN();
MediaItem getStreamInfo(String app, String streamId, String mediaServerId);
OnStreamChangedHookParam getStreamInfo(String app, String streamId, String mediaServerId);
void addCpuInfo(double cpuInfo);

View File

@@ -7,7 +7,7 @@ import com.genersoft.iot.vmp.common.SystemAllInfo;
import com.genersoft.iot.vmp.common.VideoManagerConstants;
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.bean.*;
import com.genersoft.iot.vmp.media.zlm.dto.MediaItem;
import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
@@ -573,14 +573,14 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
}
@Override
public void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, MediaItem mediaItem) {
public void addStream(MediaServerItem mediaServerItem, String type, String app, String streamId, OnStreamChangedHookParam onStreamChangedHookParam) {
// 查找是否使用了callID
StreamAuthorityInfo streamAuthorityInfo = getStreamAuthorityInfo(app, streamId);
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_" + type + "_" + app + "_" + streamId + "_" + mediaServerItem.getId();
if (streamAuthorityInfo != null) {
mediaItem.setCallId(streamAuthorityInfo.getCallId());
onStreamChangedHookParam.setCallId(streamAuthorityInfo.getCallId());
}
RedisUtil.set(key, mediaItem);
RedisUtil.set(key, onStreamChangedHookParam);
}
@Override
@@ -638,13 +638,13 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
}
@Override
public List<MediaItem> getStreams(String mediaServerId, String type) {
List<MediaItem> result = new ArrayList<>();
public List<OnStreamChangedHookParam> getStreams(String mediaServerId, String type) {
List<OnStreamChangedHookParam> result = new ArrayList<>();
String key = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_" + type + "_*_*_" + mediaServerId;
List<Object> streams = RedisUtil.scan(key);
for (Object stream : streams) {
MediaItem mediaItem = (MediaItem)RedisUtil.get((String) stream);
result.add(mediaItem);
OnStreamChangedHookParam onStreamChangedHookParam = (OnStreamChangedHookParam)RedisUtil.get((String) stream);
result.add(onStreamChangedHookParam);
}
return result;
}
@@ -716,14 +716,14 @@ public class RedisCatchStorageImpl implements IRedisCatchStorage {
@Override
public MediaItem getStreamInfo(String app, String streamId, String mediaServerId) {
public OnStreamChangedHookParam getStreamInfo(String app, String streamId, String mediaServerId) {
String scanKey = VideoManagerConstants.WVP_SERVER_STREAM_PREFIX + userSetting.getServerId() + "_*_" + app + "_" + streamId + "_" + mediaServerId;
MediaItem result = null;
OnStreamChangedHookParam result = null;
List<Object> keys = RedisUtil.scan(scanKey);
if (keys.size() > 0) {
String key = (String) keys.get(0);
result = (MediaItem)RedisUtil.get(key);
result = (OnStreamChangedHookParam)RedisUtil.get(key);
}
return result;