From d739bfa5976e36ced26f906ab16f83c20c8cb27c Mon Sep 17 00:00:00 2001 From: xiaoxie <hotcoffie@163.com> Date: 星期一, 23 五月 2022 09:44:21 +0800 Subject: [PATCH] 处理冲突 --- src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java | 44 +++++++++++++++----------------------------- 1 files changed, 15 insertions(+), 29 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java index 2ab2b23..14ed76a 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/platformNotRegister/PlatformNotRegisterEventLister.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.gb28181.event.platformNotRegister; +import com.genersoft.iot.vmp.conf.DynamicTask; import com.genersoft.iot.vmp.conf.SipConfig; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem; @@ -9,7 +10,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; import com.genersoft.iot.vmp.service.IMediaServerService; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; -import com.genersoft.iot.vmp.storager.IVideoManagerStorager; +import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -31,7 +32,7 @@ private final static Logger logger = LoggerFactory.getLogger(PlatformNotRegisterEventLister.class); @Autowired - private IVideoManagerStorager storager; + private IVideoManagerStorage storager; @Autowired private IRedisCatchStorage redisCatchStorage; @Autowired @@ -45,6 +46,9 @@ @Autowired private SipConfig config; + + @Autowired + private DynamicTask dynamicTask; // @Autowired // private RedisUtil redis; @@ -64,42 +68,24 @@ logger.info("[ 骞冲彴鏈敞鍐屼簨浠� ] 鍋滄[ {} ]鐨勬墍鏈夋帹娴乻ize", sendRtpItems.size()); if (sendRtpItems != null && sendRtpItems.size() > 0) { logger.info("[ 骞冲彴鏈敞鍐屼簨浠� ] 鍋滄[ {} ]鐨勬墍鏈夋帹娴�", event.getPlatformGbID()); - StringBuilder app = new StringBuilder(); - StringBuilder stream = new StringBuilder(); for (SendRtpItem sendRtpItem : sendRtpItems) { - if (app.length() != 0) { - app.append(","); - } - app.append(sendRtpItem.getApp()); - if (stream.length() != 0) { - stream.append(","); - } - stream.append(sendRtpItem.getStreamId()); - redisCatchStorage.deleteSendRTPServer(event.getPlatformGbID(), sendRtpItem.getChannelId()); + redisCatchStorage.deleteSendRTPServer(event.getPlatformGbID(), sendRtpItem.getChannelId(), null, null); MediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId()); Map<String, Object> param = new HashMap<>(); param.put("vhost", "__defaultVhost__"); - param.put("app", app.toString()); - param.put("stream", stream.toString()); + param.put("app", sendRtpItem.getApp()); + param.put("stream", sendRtpItem.getStreamId()); zlmrtpServerFactory.stopSendRtpStream(mediaInfo, param); } - } - - Timer timer = new Timer(); + String taskKey = "platform-not-register-" + parentPlatform.getServerGBId(); SipSubscribe.Event okEvent = (responseEvent)->{ - timer.cancel(); + dynamicTask.stop(taskKey); }; - logger.info("[骞冲彴娉ㄥ唽]骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); - sipCommanderFroPlatform.register(parentPlatform, null, okEvent); - // 璁剧疆娉ㄥ唽澶辫触鍒欐瘡闅�15绉掑彂璧蜂竴娆℃敞鍐� - timer.schedule(new TimerTask() { - @Override - public void run() { - logger.info("[骞冲彴娉ㄥ唽]鍐嶆鍚戝钩鍙版敞鍐岋紝骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); - sipCommanderFroPlatform.register(parentPlatform, null, okEvent); - } - }, config.getRegisterTimeInterval()* 1000, config.getRegisterTimeInterval()* 1000);//鍗佷簲绉掑悗鍐嶆鍙戣捣娉ㄥ唽 + dynamicTask.startCron(taskKey, ()->{ + logger.info("[骞冲彴娉ㄥ唽]鍐嶆鍚戝钩鍙版敞鍐岋紝骞冲彴鍥芥爣ID锛�" + event.getPlatformGbID()); + sipCommanderFroPlatform.register(parentPlatform, null, okEvent); + }, config.getRegisterTimeInterval()* 1000); } } -- Gitblit v1.8.0