From 935221ab4112894ad3bc92ed91eff3af8bd2226b Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 08 八月 2022 09:32:38 +0800 Subject: [PATCH] Merge pull request #567 from mrjackwang/wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java | 39 ++++++++++++++++++++++++++++++++++----- 1 files changed, 34 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java index c23cfcd..5974918 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/MediaServerServiceImpl.java @@ -8,6 +8,7 @@ import java.util.Map; import java.util.Set; +import com.genersoft.iot.vmp.media.zlm.ZLMRunner; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -53,6 +54,9 @@ @Autowired private SipConfig sipConfig; + + @Autowired + private ZLMRunner zlmRunner; @Value("${server.ssl.enabled:false}") private boolean sslEnabled; @@ -277,7 +281,13 @@ return null; } String key = VideoManagerConstants.MEDIA_SERVER_PREFIX + userSetting.getServerId() + "_" + mediaServerId; - return (MediaServerItem)redisUtil.get(key); + MediaServerItem serverItem=(MediaServerItem)redisUtil.get(key); + if(null==serverItem){ + //zlm鏈嶅姟涓嶅湪绾匡紝鍚姩閲嶈繛 + reloadZlm(); + serverItem=(MediaServerItem)redisUtil.get(key); + } + return serverItem; } @Override @@ -470,8 +480,13 @@ String key = VideoManagerConstants.MEDIA_SERVERS_ONLINE_PREFIX + userSetting.getServerId(); if (redisUtil.zSize(key) == null || redisUtil.zSize(key) == 0) { - logger.info("鑾峰彇璐熻浇鏈�浣庣殑鑺傜偣鏃舵棤鍦ㄧ嚎鑺傜偣"); - return null; + logger.info("鑾峰彇璐熻浇鏈�浣庣殑鑺傜偣鏃舵棤鍦ㄧ嚎鑺傜偣锛屽惎鍔ㄩ噸杩炴満鍒�"); + //鍚姩閲嶈繛 + reloadZlm(); + if (redisUtil.zSize(key) == null || redisUtil.zSize(key) == 0) { + logger.info("鑾峰彇璐熻浇鏈�浣庣殑鑺傜偣鏃舵棤鍦ㄧ嚎鑺傜偣"); + return null; + } } // 鑾峰彇鍒嗘暟鏈�浣庣殑锛屽強骞跺彂鏈�浣庣殑 @@ -633,8 +648,14 @@ MediaServerItem mediaServerItem = getOne(mediaServerId); if (mediaServerItem == null) { // zlm杩炴帴閲嶈瘯 - logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅]澶辫触锛屾湭鎵惧埌娴佸獟浣撲俊鎭�"); - return; + logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅]澶辫触锛屾湭鎵惧埌娴佸獟浣撲俊鎭�,灏濊瘯閲嶈繛zlm"); + reloadZlm(); + mediaServerItem = getOne(mediaServerId); + if (mediaServerItem == null) { + // zlm杩炴帴閲嶈瘯 + logger.warn("[鏇存柊ZLM 淇濇椿淇℃伅]澶辫触锛屾湭鎵惧埌娴佸獟浣撲俊鎭�"); + return; + } } String key = VideoManagerConstants.MEDIA_SERVER_KEEPALIVE_PREFIX + userSetting.getServerId() + "_" + mediaServerId; int hookAliveInterval = mediaServerItem.getHookAliveInterval() + 2; @@ -657,4 +678,12 @@ } } + public void reloadZlm(){ + try { + zlmRunner.run(); + Thread.sleep(500);//寤惰繜0.5绉掔紦鍐叉椂闂� + } catch (Exception e) { + logger.warn("灏濊瘯閲嶈繛zlm澶辫触锛�",e); + } + } } -- Gitblit v1.8.0