From a59095db0c240987028d4d05ab561665ed8fe7ea Mon Sep 17 00:00:00 2001
From: mrjackwang <30337754+mrjackwang@users.noreply.github.com>
Date: 星期五, 29 七月 2022 15:16:39 +0800
Subject: [PATCH] Merge branch '648540858:wvp-28181-2.0' into wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/media/zlm/event/ZLMKeepliveTimeoutListener.java | 44 +++++++++++++++++++++++++++++++-------------
1 files changed, 31 insertions(+), 13 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/event/ZLMKeepliveTimeoutListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/event/ZLMKeepliveTimeoutListener.java
index 6b88ec9..d3af23c 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/event/ZLMKeepliveTimeoutListener.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/event/ZLMKeepliveTimeoutListener.java
@@ -1,13 +1,17 @@
package com.genersoft.iot.vmp.media.zlm.event;
+import com.alibaba.fastjson.JSONObject;
import com.genersoft.iot.vmp.common.VideoManagerConstants;
-import com.genersoft.iot.vmp.conf.UserSetup;
+import com.genersoft.iot.vmp.conf.RedisKeyExpirationEventMessageListener;
+import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.event.EventPublisher;
+import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
+import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
+import com.genersoft.iot.vmp.service.IMediaServerService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.connection.Message;
-import org.springframework.data.redis.listener.KeyExpirationEventMessageListener;
import org.springframework.data.redis.listener.RedisMessageListenerContainer;
import org.springframework.stereotype.Component;
@@ -17,7 +21,7 @@
* @date: 2020骞�5鏈�6鏃� 涓婂崍11:35:46
*/
@Component
-public class ZLMKeepliveTimeoutListener extends KeyExpirationEventMessageListener {
+public class ZLMKeepliveTimeoutListener extends RedisKeyExpirationEventMessageListener {
private Logger logger = LoggerFactory.getLogger(ZLMKeepliveTimeoutListener.class);
@@ -25,15 +29,20 @@
private EventPublisher publisher;
@Autowired
- private UserSetup userSetup;
+ private ZLMRESTfulUtils zlmresTfulUtils;
- public ZLMKeepliveTimeoutListener(RedisMessageListenerContainer listenerContainer) {
- super(listenerContainer);
- // 閰嶇疆springboot榛樿Config涓虹┖锛屽嵆涓嶈搴旂敤鍘讳慨鏀箁edis鐨勯粯璁ら厤缃紝鍥犱负Redis鏈嶅姟鍑轰簬瀹夊叏浼氱鐢–ONFIG鍛戒护缁欒繙绋嬬敤鎴蜂娇鐢�
- setKeyspaceNotificationsConfigParameter("");
- }
+ @Autowired
+ private UserSetting userSetting;
- /**
+ @Autowired
+ private IMediaServerService mediaServerService;
+
+ public ZLMKeepliveTimeoutListener(RedisMessageListenerContainer listenerContainer, UserSetting userSetting) {
+ super(listenerContainer, userSetting);
+ }
+
+
+ /**
* 鐩戝惉澶辨晥鐨刱ey锛宬ey鏍煎紡涓簁eeplive_deviceId
* @param message
* @param pattern
@@ -42,13 +51,22 @@
public void onMessage(Message message, byte[] pattern) {
// 鑾峰彇澶辨晥鐨刱ey
String expiredKey = message.toString();
- String KEEPLIVEKEY_PREFIX = VideoManagerConstants.MEDIA_SERVER_KEEPALIVE_PREFIX + userSetup.getServerId() + "_";
+ String KEEPLIVEKEY_PREFIX = VideoManagerConstants.MEDIA_SERVER_KEEPALIVE_PREFIX + userSetting.getServerId() + "_";
if(!expiredKey.startsWith(KEEPLIVEKEY_PREFIX)){
return;
}
String mediaServerId = expiredKey.substring(KEEPLIVEKEY_PREFIX.length(),expiredKey.length());
-
- publisher.zlmOfflineEventPublish(mediaServerId);
+ logger.info("[zlm蹇冭烦鍒版湡]锛�" + mediaServerId);
+ // 鍙戣捣http璇锋眰楠岃瘉zlm鏄惁纭疄鏃犳硶杩炴帴锛屽鏋滅‘瀹炴棤娉曡繛鎺ュ垯鍙戦�佺绾夸簨浠讹紝鍚﹀垯涓嶄綔澶勭悊
+ MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId);
+ JSONObject mediaServerConfig = zlmresTfulUtils.getMediaServerConfig(mediaServerItem);
+ if (mediaServerConfig != null && mediaServerConfig.getInteger("code") == 0) {
+ logger.info("[zlm蹇冭烦鍒版湡]锛歿}楠岃瘉鍚巣lm浠嶅湪绾匡紝鎭㈠蹇冭烦淇℃伅", mediaServerId);
+ // 娣诲姞zlm淇℃伅
+ mediaServerService.updateMediaServerKeepalive(mediaServerId, mediaServerConfig);
+ }else {
+ publisher.zlmOfflineEventPublish(mediaServerId);
+ }
}
}
--
Gitblit v1.8.0