Commit b019106c449cdb64b125aa2a913e7f8037c8d85d

Authored by 648540858
Committed by GitHub
2 parents 2eb1ca2d af885ca4

Merge pull request #365 from TristingChen/zlm-node-manage

fixed--多节点管理zlm,wvp重启之后节点中的redis在线状态bug修复
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRunner.java
... ... @@ -92,6 +92,7 @@ public class ZLMRunner implements CommandLineRunner {
92 92  
93 93 // 获取所有的zlm, 并开启主动连接
94 94 List<MediaServerItem> all = mediaServerService.getAllFromDatabase();
  95 + mediaServerService.updateVmServer(all);
95 96 if (all.size() == 0) {
96 97 all.add(mediaConfig.getMediaSerItem());
97 98 }
... ...
src/main/java/com/genersoft/iot/vmp/service/IMediaServerService.java
... ... @@ -42,6 +42,8 @@ public interface IMediaServerService {
42 42  
43 43 void setZLMConfig(MediaServerItem mediaServerItem, boolean restart);
44 44  
  45 + void updateVmServer(List<MediaServerItem> mediaServerItemList);
  46 +
45 47 SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId);
46 48  
47 49 SSRCInfo openRTPServer(MediaServerItem mediaServerItem, String streamId, boolean isPlayback);
... ... @@ -74,6 +76,8 @@ public interface IMediaServerService {
74 76  
75 77 void delete(String id);
76 78  
  79 + void deleteDb(String id);
  80 +
77 81 MediaServerItem getDefaultMediaServer();
78 82  
79 83 void updateMediaServerKeepalive(String mediaServerId, JSONObject data);
... ...
src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java
... ... @@ -46,8 +46,7 @@ import java.util.*;
46 46 * 媒体服务器节点管理
47 47 */
48 48 @Service
49   -@Order(value=2)
50   -public class MediaServerServiceImpl implements IMediaServerService, CommandLineRunner {
  49 +public class MediaServerServiceImpl implements IMediaServerService {
51 50  
52 51 private final static Logger logger = LoggerFactory.getLogger(MediaServerServiceImpl.class);
53 52  
... ... @@ -102,9 +101,8 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
102 101 * 初始化
103 102 */
104 103 @Override
105   - public void run(String... args) throws Exception {
  104 + public void updateVmServer(List<MediaServerItem> mediaServerItemList) {
106 105 logger.info("[缓存初始化] Media Server ");
107   - List<MediaServerItem> mediaServerItemList = mediaServerMapper.queryAll();
108 106 for (MediaServerItem mediaServerItem : mediaServerItemList) {
109 107 if (StringUtils.isEmpty(mediaServerItem.getId())) {
110 108 continue;
... ... @@ -225,7 +223,8 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
225 223 String key = (String) mediaServerKey;
226 224 MediaServerItem mediaServerItem = (MediaServerItem) redisUtil.get(key);
227 225 // 检查状态
228   - if (redisUtil.zScore(onlineKey, mediaServerItem.getId()) != null) {
  226 + Double aDouble = redisUtil.zScore(onlineKey, mediaServerItem.getId());
  227 + if (aDouble != null) {
229 228 mediaServerItem.setStatus(true);
230 229 }
231 230 result.add(mediaServerItem);
... ... @@ -610,6 +609,11 @@ public class MediaServerServiceImpl implements IMediaServerService, CommandLineR
610 609 String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetup.getServerId() + "_" + id;
611 610 redisUtil.del(key);
612 611 }
  612 + @Override
  613 + public void deleteDb(String id){
  614 + //同步删除数据库中的数据
  615 + mediaServerMapper.delOne(id);
  616 + }
613 617  
614 618 @Override
615 619 public void updateMediaServerKeepalive(String mediaServerId, JSONObject data) {
... ...
src/main/java/com/genersoft/iot/vmp/vmanager/server/ServerController.java
... ... @@ -158,6 +158,7 @@ public class ServerController {
158 158 public WVPResult<String> deleteMediaServer(@RequestParam String id){
159 159 if (mediaServerService.getOne(id) != null) {
160 160 mediaServerService.delete(id);
  161 + mediaServerService.deleteDb(id);
161 162 }else {
162 163 WVPResult<String> result = new WVPResult<>();
163 164 result.setCode(-1);
... ...