From e7f5cfc422cb9ac8dc72f0c0faf063bf5fcb711c Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 06 五月 2022 17:26:36 +0800
Subject: [PATCH] test
---
src/main/java/com/genersoft/iot/vmp/media/zlm/event/ZLMKeepliveTimeoutListener.java | 41 +++++++++++++++++++++++++++++++----------
1 files changed, 31 insertions(+), 10 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 33a251c..dd1f69e 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,13 +29,20 @@
private EventPublisher publisher;
@Autowired
- private UserSetup userSetup;
+ private ZLMRESTfulUtils zlmresTfulUtils;
- public ZLMKeepliveTimeoutListener(RedisMessageListenerContainer listenerContainer) {
- super(listenerContainer);
- }
+ @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
@@ -40,13 +51,23 @@
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());
+ logger.info("[zlm蹇冭烦鍒版湡]锛�" + mediaServerId);
+ // 鍙戣捣http璇锋眰楠岃瘉zlm鏄惁纭疄鏃犳硶杩炴帴锛屽鏋滅‘瀹炴棤娉曡繛鎺ュ垯鍙戦�佺绾夸簨浠讹紝鍚﹀垯涓嶄綔澶勭悊
+ MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId);
+ JSONObject mediaServerConfig = zlmresTfulUtils.getMediaServerConfig(mediaServerItem);
+ if (mediaServerConfig == null) {
+ publisher.zlmOfflineEventPublish(mediaServerId);
+ }else {
+ logger.info("[zlm蹇冭烦鍒版湡]锛歿}楠岃瘉鍚巣lm浠嶅湪绾匡紝鎭㈠蹇冭烦淇℃伅", mediaServerId);
+ // 娣诲姞zlm淇℃伅
+ mediaServerService.updateMediaServerKeepalive(mediaServerId, mediaServerConfig);
+ }
- publisher.zlmOfflineEventPublish(mediaServerId);
}
}
--
Gitblit v1.8.0