From f0cba184fea47421993697dcf5138678ae82443f Mon Sep 17 00:00:00 2001 From: zxb <919411476@qq.com> Date: Mon, 7 Aug 2023 17:19:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=BD=E6=A0=87=E5=BD=95=E5=83=8F=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=9F=A5=E8=AF=A2=E4=B8=8B=E7=BA=A7=E5=B9=B3=E5=8F=B0?= =?UTF-8?q?=E5=BD=95=E5=83=8F=E9=97=AE=E9=A2=98=E6=8E=92=E6=9F=A5:=20?= =?UTF-8?q?=E5=88=9D=E6=AD=A5=E5=AE=9A=E4=BD=8D=20=E5=9B=A0=20RecordEndEve?= =?UTF-8?q?ntListener.handlerMap=20=E6=97=B6=E9=97=B4=E8=A7=A6=E5=8F=91?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E6=97=B6=20handlerMap.get=20=E6=97=B6=20null?= =?UTF-8?q?=20=E5=AF=BC=E8=87=B4=20=E5=BE=85=E5=90=8E=E7=BB=AD=E6=8E=92?= =?UTF-8?q?=E6=9F=A5/=E8=A7=A3=E5=86=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/record/RecordEndEventListener.java | 12 +++++++++--- .../cmd/RecordInfoQueryMessageHandler.java | 19 +++++++++---------- 2 files changed, 18 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/event/record/RecordEndEventListener.java b/src/main/java/com/genersoft/iot/vmp/gb28181/event/record/RecordEndEventListener.java index cb468230..8df42062 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/event/record/RecordEndEventListener.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/event/record/RecordEndEventListener.java @@ -6,6 +6,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationListener; +import org.springframework.context.annotation.Scope; +import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.stereotype.Component; import java.util.Map; @@ -22,7 +24,7 @@ public class RecordEndEventListener implements ApplicationListener handlerMap = new ConcurrentHashMap<>(); + private final static Map handlerMap = new ConcurrentHashMap<>(); public interface RecordEndEventHandler{ void handler(RecordInfo recordInfo); } @@ -35,11 +37,13 @@ public class RecordEndEventListener implements ApplicationListener {}", handlerMap.size()); if (handlerMap.size() > 0) { RecordEndEventHandler handler = handlerMap.get(deviceId + channelId); - if (handler !=null){ + logger.debug("handler => {}", handler); + if (handler != null){ handler.handler(event.getRecordInfo()); - if (count ==sumNum){ + if (count == sumNum){ handlerMap.remove(deviceId + channelId); } } @@ -53,6 +57,7 @@ public class RecordEndEventListener implements ApplicationListener deviceId: {}, channelId: {}", device,channelId); handlerMap.put(device + channelId, recordEndEventHandler); } /** @@ -61,6 +66,7 @@ public class RecordEndEventListener implements ApplicationListener deviceId: {}, channelId: {}", device,channelId); handlerMap.remove(device + channelId); } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java index f3170a5d..129d7734 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/query/cmd/RecordInfoQueryMessageHandler.java @@ -13,9 +13,8 @@ import com.genersoft.iot.vmp.utils.DateUtil; import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import com.genersoft.iot.vmp.storager.dao.dto.ChannelSourceInfo; import gov.nist.javax.sip.message.SIPRequest; +import lombok.extern.slf4j.Slf4j; import org.dom4j.Element; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -27,10 +26,9 @@ import javax.sip.message.Response; import java.text.ParseException; import java.util.List; +@Slf4j @Component public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent implements InitializingBean, IMessageHandler { - - private Logger logger = LoggerFactory.getLogger(RecordInfoQueryMessageHandler.class); private final String cmdType = "RecordInfo"; @Autowired @@ -99,12 +97,13 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp // 向国标设备请求录像数据 Device device = storager.queryVideoDeviceByPlatformIdAndChannelId(parentPlatform.getServerGBId(), channelId); DeviceChannel deviceChannel = storager.queryChannelInParentPlatform(parentPlatform.getServerGBId(), channelId); + log.debug("deviceId => {}, channelId => {}", deviceChannel.getDeviceId(),channelId); // 接收录像数据 recordEndEventListener.addEndEventHandler(deviceChannel.getDeviceId(), channelId, (recordInfo)->{ try { cmderFroPlatform.recordInfo(deviceChannel, parentPlatform, request.getFromTag(), recordInfo); } catch (SipException | InvalidArgumentException | ParseException e) { - logger.error("[命令发送失败] 国标级联 回复录像数据: {}", e.getMessage()); + log.error("[命令发送失败] 国标级联 回复录像数据: {}", e.getMessage()); } }); try { @@ -114,18 +113,18 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp try { responseAck(request, Response.OK); } catch (SipException | InvalidArgumentException | ParseException e) { - logger.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); + log.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); } }),(eventResult -> { // 查询失败 try { responseAck(request, eventResult.statusCode, eventResult.msg); } catch (SipException | InvalidArgumentException | ParseException e) { - logger.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); + log.error("[命令发送失败] 录像查询回复: {}", e.getMessage()); } })); } catch (InvalidArgumentException | ParseException | SipException e) { - logger.error("[命令发送失败] 录像查询: {}", e.getMessage()); + log.error("[命令发送失败] 录像查询: {}", e.getMessage()); } }else if (channelSources.get(1).getCount() > 0) { // 直播流 @@ -133,13 +132,13 @@ public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent imp try { responseAck(request, Response.NOT_IMPLEMENTED); // 回复未实现 } catch (SipException | InvalidArgumentException | ParseException e) { - logger.error("[命令发送失败] 录像查询: {}", e.getMessage()); + log.error("[命令发送失败] 录像查询: {}", e.getMessage()); } }else { // 错误的请求 try { responseAck(request, Response.BAD_REQUEST); } catch (SipException | InvalidArgumentException | ParseException e) { - logger.error("[命令发送失败] 录像查询: {}", e.getMessage()); + log.error("[命令发送失败] 录像查询: {}", e.getMessage()); } } }