修复国标点播缓存启动未清理的BUG
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
package com.genersoft.iot.vmp.streamPush.service;
|
||||
|
||||
import com.genersoft.iot.vmp.media.bean.MediaServer;
|
||||
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
|
||||
import com.genersoft.iot.vmp.service.bean.StreamPushItemFromRedis;
|
||||
import com.genersoft.iot.vmp.streamPush.bean.StreamPush;
|
||||
@@ -36,12 +37,12 @@ public interface IStreamPushService {
|
||||
/**
|
||||
* 新的节点加入
|
||||
*/
|
||||
void zlmServerOnline(String mediaServerId);
|
||||
void zlmServerOnline(MediaServer mediaServer);
|
||||
|
||||
/**
|
||||
* 节点离线
|
||||
*/
|
||||
void zlmServerOffline(String mediaServerId);
|
||||
void zlmServerOffline(MediaServer mediaServer);
|
||||
|
||||
/**
|
||||
* 批量添加
|
||||
|
||||
@@ -159,7 +159,7 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
@EventListener
|
||||
@Transactional
|
||||
public void onApplicationEvent(MediaServerOnlineEvent event) {
|
||||
zlmServerOnline(event.getMediaServerId());
|
||||
zlmServerOnline(event.getMediaServer());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -169,7 +169,7 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
@EventListener
|
||||
@Transactional
|
||||
public void onApplicationEvent(MediaServerOfflineEvent event) {
|
||||
zlmServerOffline(event.getMediaServerId());
|
||||
zlmServerOffline(event.getMediaServer());
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -310,17 +310,16 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void zlmServerOnline(String mediaServerId) {
|
||||
public void zlmServerOnline(MediaServer mediaServer) {
|
||||
// 同步zlm推流信息
|
||||
MediaServer mediaServerItem = mediaServerService.getOne(mediaServerId);
|
||||
if (mediaServerItem == null) {
|
||||
if (mediaServer == null) {
|
||||
return;
|
||||
}
|
||||
// 数据库记录
|
||||
List<StreamPush> pushList = getPushList(mediaServerId);
|
||||
List<StreamPush> pushList = getPushList(mediaServer.getId());
|
||||
Map<String, StreamPush> pushItemMap = new HashMap<>();
|
||||
// redis记录
|
||||
List<MediaInfo> mediaInfoList = redisCatchStorage.getStreams(mediaServerId, "PUSH");
|
||||
List<MediaInfo> mediaInfoList = redisCatchStorage.getStreams(mediaServer.getId(), "PUSH");
|
||||
Map<String, MediaInfo> streamInfoPushItemMap = new HashMap<>();
|
||||
if (!pushList.isEmpty()) {
|
||||
for (StreamPush streamPushItem : pushList) {
|
||||
@@ -340,7 +339,7 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
for (StreamAuthorityInfo streamAuthorityInfo : allStreamAuthorityInfo) {
|
||||
streamAuthorityInfoInfoMap.put(streamAuthorityInfo.getApp() + streamAuthorityInfo.getStream(), streamAuthorityInfo);
|
||||
}
|
||||
List<StreamInfo> mediaList = mediaServerService.getMediaList(mediaServerItem, null, null, null);
|
||||
List<StreamInfo> mediaList = mediaServerService.getMediaList(mediaServer, null, null, null);
|
||||
if (mediaList == null) {
|
||||
return;
|
||||
}
|
||||
@@ -368,12 +367,12 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
jsonObject.put("app", mediaInfo.getApp());
|
||||
jsonObject.put("stream", mediaInfo.getStream());
|
||||
jsonObject.put("register", false);
|
||||
jsonObject.put("mediaServerId", mediaServerId);
|
||||
jsonObject.put("mediaServerId", mediaServer.getId());
|
||||
redisCatchStorage.sendStreamChangeMsg(type, jsonObject);
|
||||
// 移除redis内流的信息
|
||||
redisCatchStorage.removeStream(mediaServerItem.getId(), "PUSH", mediaInfo.getApp(), mediaInfo.getStream());
|
||||
redisCatchStorage.removeStream(mediaServer.getId(), "PUSH", mediaInfo.getApp(), mediaInfo.getStream());
|
||||
// 冗余数据,自己系统中自用
|
||||
redisCatchStorage.removePushListItem(mediaInfo.getApp(), mediaInfo.getStream(), mediaServerItem.getId());
|
||||
redisCatchStorage.removePushListItem(mediaInfo.getApp(), mediaInfo.getStream(), mediaServer.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -388,8 +387,8 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void zlmServerOffline(String mediaServerId) {
|
||||
List<StreamPush> streamPushItems = streamPushMapper.selectAllByMediaServerId(mediaServerId);
|
||||
public void zlmServerOffline(MediaServer mediaServer) {
|
||||
List<StreamPush> streamPushItems = streamPushMapper.selectAllByMediaServerId(mediaServer.getId());
|
||||
if (!streamPushItems.isEmpty()) {
|
||||
for (StreamPush streamPushItem : streamPushItems) {
|
||||
stop(streamPushItem);
|
||||
@@ -403,21 +402,21 @@ public class StreamPushServiceImpl implements IStreamPushService {
|
||||
// 发送流停止消息
|
||||
String type = "PUSH";
|
||||
// 发送redis消息
|
||||
List<MediaInfo> mediaInfoList = redisCatchStorage.getStreams(mediaServerId, type);
|
||||
List<MediaInfo> mediaInfoList = redisCatchStorage.getStreams(mediaServer.getId(), type);
|
||||
if (!mediaInfoList.isEmpty()) {
|
||||
for (MediaInfo mediaInfo : mediaInfoList) {
|
||||
// 移除redis内流的信息
|
||||
redisCatchStorage.removeStream(mediaServerId, type, mediaInfo.getApp(), mediaInfo.getStream());
|
||||
redisCatchStorage.removeStream(mediaServer.getId(), type, mediaInfo.getApp(), mediaInfo.getStream());
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("serverId", userSetting.getServerId());
|
||||
jsonObject.put("app", mediaInfo.getApp());
|
||||
jsonObject.put("stream", mediaInfo.getStream());
|
||||
jsonObject.put("register", false);
|
||||
jsonObject.put("mediaServerId", mediaServerId);
|
||||
jsonObject.put("mediaServerId", mediaServer.getId());
|
||||
redisCatchStorage.sendStreamChangeMsg(type, jsonObject);
|
||||
|
||||
// 冗余数据,自己系统中自用
|
||||
redisCatchStorage.removePushListItem(mediaInfo.getApp(), mediaInfo.getStream(), mediaServerId);
|
||||
redisCatchStorage.removePushListItem(mediaInfo.getApp(), mediaInfo.getStream(), mediaServer.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user