From 12aea2853d551780a098c669bed3f53d6dd9a522 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Wed, 19 Apr 2023 11:09:26 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96notify=E6=80=A7=E8=83=BD?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0notify=E8=B6=85=E5=87=BA=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=83=BD=E5=8A=9B=E6=97=B6=E7=9B=B4=E6=8E=A5=E5=9B=9E?= =?UTF-8?q?=E5=A4=8D=E9=94=99=E8=AF=AF=E7=A0=81=EF=BC=8C=E4=B8=8D=E5=81=9A?= =?UTF-8?q?=E5=A4=84=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/_content/ability/_media/img_16.png | Bin 42517 -> 114388 bytes .../genersoft/iot/vmp/conf/UserSetting.java | 10 + .../NotifyRequestForCatalogProcessor.java | 264 ++++++++++++++++++ .../request/impl/NotifyRequestProcessor.java | 27 +- .../vmp/service/IDeviceChannelService.java | 31 ++ .../impl/DeviceChannelServiceImpl.java | 41 +++ .../vmp/service/impl/DeviceServiceImpl.java | 2 + .../vmp/storager/dao/DeviceChannelMapper.java | 114 +++++--- src/main/resources/all-application.yml | 2 + 9 files changed, 451 insertions(+), 40 deletions(-) create mode 100644 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java diff --git a/doc/_content/ability/_media/img_16.png b/doc/_content/ability/_media/img_16.png index f7ce9e7aa7b6ba28c414ce2e1f9b00667064aaa7..b09e8cd39a747a1f16bc51cd7b9446df36ac2b4e 100644 GIT binary patch literal 114388 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 z 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

PxMp+X#{%@a4mseg9rm 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 F{{vP918@KU literal 42517 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�LVIE` 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 allowedOrigins = new ArrayList<>(); + private int maxNotifyCountQueue = 10000; + public Boolean getSavePositionHistory() { return savePositionHistory; } @@ -257,4 +259,12 @@ public class UserSetting { public void setRecordPath(String recordPath) { this.recordPath = recordPath; } + + public int getMaxNotifyCountQueue() { + return maxNotifyCountQueue; + } + + public void setMaxNotifyCountQueue(int maxNotifyCountQueue) { + this.maxNotifyCountQueue = maxNotifyCountQueue; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java new file mode 100644 index 00000000..56fa187e --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestForCatalogProcessor.java @@ -0,0 +1,264 @@ +package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl; + +import com.genersoft.iot.vmp.conf.DynamicTask; +import com.genersoft.iot.vmp.conf.UserSetting; +import com.genersoft.iot.vmp.gb28181.bean.Device; +import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel; +import com.genersoft.iot.vmp.gb28181.event.EventPublisher; +import com.genersoft.iot.vmp.gb28181.event.subscribe.catalog.CatalogEvent; +import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; +import com.genersoft.iot.vmp.gb28181.utils.SipUtils; +import com.genersoft.iot.vmp.gb28181.utils.XmlUtil; +import com.genersoft.iot.vmp.service.IDeviceChannelService; +import com.genersoft.iot.vmp.storager.IRedisCatchStorage; +import org.dom4j.DocumentException; +import org.dom4j.Element; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.sip.RequestEvent; +import javax.sip.header.FromHeader; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * SIP命令类型: NOTIFY请求中的目录请求处理 + */ +@Component +public class NotifyRequestForCatalogProcessor extends SIPRequestProcessorParent { + + + private final static Logger logger = LoggerFactory.getLogger(NotifyRequestForCatalogProcessor.class); + + private final List updateChannelOnlineList = new CopyOnWriteArrayList<>(); + private final List updateChannelOfflineList = new CopyOnWriteArrayList<>(); + private final Map updateChannelMap = new ConcurrentHashMap<>(); + + private final Map addChannelMap = new ConcurrentHashMap<>(); + private final List deleteChannelList = new CopyOnWriteArrayList<>(); + + + @Autowired + private UserSetting userSetting; + + @Autowired + private EventPublisher eventPublisher; + + @Autowired + private IRedisCatchStorage redisCatchStorage; + + @Autowired + private IDeviceChannelService deviceChannelService; + + @Autowired + private DynamicTask dynamicTask; + + private final static String talkKey = "notify-request-for-catalog-task"; + + public void process(RequestEvent evt) { + try { + long start = System.currentTimeMillis(); + FromHeader fromHeader = (FromHeader) evt.getRequest().getHeader(FromHeader.NAME); + String deviceId = SipUtils.getUserIdFromFromHeader(fromHeader); + + Device device = redisCatchStorage.getDevice(deviceId); + if (device == null || device.getOnline() == 0) { + logger.warn("[收到目录订阅]:{}, 但是设备已经离线", (device != null ? device.getDeviceId():"" )); + return; + } + Element rootElement = getRootElement(evt, device.getCharset()); + if (rootElement == null) { + logger.warn("[ 收到目录订阅 ] content cannot be null, {}", evt.getRequest()); + return; + } + Element deviceListElement = rootElement.element("DeviceList"); + if (deviceListElement == null) { + return; + } + Iterator deviceListIterator = deviceListElement.elementIterator(); + if (deviceListIterator != null) { + + // 遍历DeviceList + while (deviceListIterator.hasNext()) { + Element itemDevice = deviceListIterator.next(); + Element channelDeviceElement = itemDevice.element("DeviceID"); + if (channelDeviceElement == null) { + continue; + } + Element eventElement = itemDevice.element("Event"); + String event; + if (eventElement == null) { + logger.warn("[收到目录订阅]:{}, 但是Event为空, 设为默认值 ADD", (device != null ? device.getDeviceId():"" )); + event = CatalogEvent.ADD; + }else { + event = eventElement.getText().toUpperCase(); + } + DeviceChannel channel = XmlUtil.channelContentHander(itemDevice, device, event); + + channel.setDeviceId(device.getDeviceId()); + logger.info("[收到目录订阅]:{}/{}", device.getDeviceId(), channel.getChannelId()); + switch (event) { + case CatalogEvent.ON: + // 上线 + logger.info("[收到通道上线通知] 来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + updateChannelOnlineList.add(channel); + if (updateChannelOnlineList.size() > 300) { + executeSaveForOnline(); + } + break; + case CatalogEvent.OFF : + // 离线 + logger.info("[收到通道离线通知] 来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + if (userSetting.getRefuseChannelStatusChannelFormNotify()) { + updateChannelOfflineList.add(channel); + if (updateChannelOfflineList.size() > 300) { + executeSaveForOffline(); + } + }else { + logger.info("[收到通道离线通知] 但是平台已配置拒绝此消息,来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + } + break; + case CatalogEvent.VLOST: + // 视频丢失 + logger.info("[收到通道视频丢失通知] 来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + if (userSetting.getRefuseChannelStatusChannelFormNotify()) { + updateChannelOfflineList.add(channel); + if (updateChannelOfflineList.size() > 300) { + executeSaveForOffline(); + } + }else { + logger.info("[收到通道视频丢失通知] 但是平台已配置拒绝此消息,来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + } + break; + case CatalogEvent.DEFECT: + // 故障 + logger.info("[收到通道视频故障通知] 来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + if (userSetting.getRefuseChannelStatusChannelFormNotify()) { + updateChannelOfflineList.add(channel); + if (updateChannelOfflineList.size() > 300) { + executeSaveForOffline(); + } + }else { + logger.info("[收到通道视频故障通知] 但是平台已配置拒绝此消息,来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + } + break; + case CatalogEvent.ADD: + // 增加 + logger.info("[收到增加通道通知] 来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + // 判断此通道是否存在 + DeviceChannel deviceChannel = deviceChannelService.getOne(deviceId, channel.getChannelId()); + if (deviceChannel != null) { + channel.setId(deviceChannel.getId()); + updateChannelMap.put(channel.getChannelId(), channel); + if (updateChannelMap.keySet().size() > 300) { + executeSaveForUpdate(); + } + }else { + addChannelMap.put(channel.getChannelId(), channel); + if (addChannelMap.keySet().size() > 300) { + executeSaveForAdd(); + } + } + + break; + case CatalogEvent.DEL: + // 删除 + logger.info("[收到删除通道通知] 来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + deleteChannelList.add(channel); + if (deleteChannelList.size() > 300) { + executeSaveForDelete(); + } + break; + case CatalogEvent.UPDATE: + // 更新 + logger.info("[收到更新通道通知] 来自设备: {}, 通道 {}", device.getDeviceId(), channel.getChannelId()); + // 判断此通道是否存在 + DeviceChannel deviceChannelForUpdate = deviceChannelService.getOne(deviceId, channel.getChannelId()); + if (deviceChannelForUpdate != null) { + channel.setId(deviceChannelForUpdate.getId()); + updateChannelMap.put(channel.getChannelId(), channel); + if (updateChannelMap.keySet().size() > 300) { + executeSaveForUpdate(); + } + }else { + addChannelMap.put(channel.getChannelId(), channel); + if (addChannelMap.keySet().size() > 300) { + executeSaveForAdd(); + } + } + break; + default: + logger.warn("[ NotifyCatalog ] event not found : {}", event ); + + } + // 转发变化信息 + eventPublisher.catalogEventPublish(null, channel, event); + + if (updateChannelMap.keySet().size() > 0 + || addChannelMap.keySet().size() > 0 + || updateChannelOnlineList.size() > 0 + || updateChannelOfflineList.size() > 0 + || deleteChannelList.size() > 0) { + + if (!dynamicTask.contains(talkKey)) { + dynamicTask.startDelay(talkKey, this::executeSave, 1000); + } + } + } + } + } catch (DocumentException e) { + logger.error("未处理的异常 ", e); + } + } + + private void executeSave(){ + System.out.println("定时存储数据"); + executeSaveForUpdate(); + executeSaveForDelete(); + executeSaveForOnline(); + executeSaveForOffline(); + dynamicTask.stop(talkKey); + } + + private void executeSaveForUpdate(){ + if (updateChannelMap.values().size() > 0) { + ArrayList deviceChannels = new ArrayList<>(updateChannelMap.values()); + updateChannelMap.clear(); + deviceChannelService.batchUpdateChannel(deviceChannels); + } + + } + + private void executeSaveForAdd(){ + if (addChannelMap.values().size() > 0) { + ArrayList deviceChannels = new ArrayList<>(addChannelMap.values()); + addChannelMap.clear(); + deviceChannelService.batchAddChannel(deviceChannels); + } + } + + private void executeSaveForDelete(){ + if (deleteChannelList.size() > 0) { + deviceChannelService.deleteChannels(deleteChannelList); + deleteChannelList.clear(); + } + } + + private void executeSaveForOnline(){ + if (updateChannelOnlineList.size() > 0) { + deviceChannelService.channelsOnline(updateChannelOnlineList); + updateChannelOnlineList.clear(); + } + } + + private void executeSaveForOffline(){ + if (updateChannelOfflineList.size() > 0) { + deviceChannelService.channelsOffline(updateChannelOfflineList); + updateChannelOfflineList.clear(); + } + } + +} diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java index 42606411..5dae8261 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java @@ -76,12 +76,17 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements @Autowired private IDeviceChannelService deviceChannelService; + @Autowired + private NotifyRequestForCatalogProcessor notifyRequestForCatalogProcessor; + private ConcurrentLinkedQueue taskQueue = new ConcurrentLinkedQueue<>(); @Qualifier("taskExecutor") @Autowired private ThreadPoolTaskExecutor taskExecutor; + private int maxQueueCount = 30000; + @Override public void afterPropertiesSet() throws Exception { // 添加消息处理的订阅 @@ -91,7 +96,15 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements @Override public void process(RequestEvent evt) { try { - responseAck((SIPRequest) evt.getRequest(), Response.OK, null, null); + + if (taskQueue.size() >= userSetting.getMaxNotifyCountQueue()) { + responseAck((SIPRequest) evt.getRequest(), Response.BUSY_HERE, null, null); + logger.error("[notify] 待处理消息队列已满 {},返回486 BUSY_HERE,消息不做处理", userSetting.getMaxNotifyCountQueue()); + return; + }else { + responseAck((SIPRequest) evt.getRequest(), Response.OK, null, null); + } + }catch (SipException | InvalidArgumentException | ParseException e) { logger.error("未处理的异常 ", e); } @@ -103,6 +116,9 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements while (!taskQueue.isEmpty()) { try { HandlerCatchData take = taskQueue.poll(); + if (take == null) { + continue; + } Element rootElement = getRootElement(take.getEvt()); if (rootElement == null) { logger.error("处理NOTIFY消息时未获取到消息体,{}", take.getEvt().getRequest()); @@ -112,7 +128,8 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements if (CmdType.CATALOG.equals(cmd)) { logger.info("接收到Catalog通知"); - processNotifyCatalogList(take.getEvt()); +// processNotifyCatalogList(take.getEvt()); + notifyRequestForCatalogProcessor.process(take.getEvt()); } else if (CmdType.ALARM.equals(cmd)) { logger.info("接收到Alarm通知"); processNotifyAlarm(take.getEvt()); @@ -132,7 +149,7 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements /** * 处理MobilePosition移动位置Notify - * + * * @param evt */ private void processNotifyMobilePosition(RequestEvent evt) { @@ -236,7 +253,7 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements /*** * 处理alarm设备报警Notify - * + * * @param evt */ private void processNotifyAlarm(RequestEvent evt) { @@ -346,7 +363,7 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements /*** * 处理catalog设备目录列表Notify - * + * * @param evt */ private void processNotifyCatalogList(RequestEvent evt) { diff --git a/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java b/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java index c192dd5a..66dbe077 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java +++ b/src/main/java/com/genersoft/iot/vmp/service/IDeviceChannelService.java @@ -56,4 +56,35 @@ public interface IDeviceChannelService { * 查询通道所属的设备 */ List getDeviceByChannelId(String channelId); + + /** + * 批量删除通道 + * @param deleteChannelList 待删除的通道列表 + */ + int deleteChannels(List deleteChannelList); + + /** + * 批量上线 + */ + int channelsOnline(List channels); + + /** + * 批量下线 + */ + int channelsOffline(List channels); + + /** + * 获取一个通道 + */ + DeviceChannel getOne(String deviceId, String channelId); + + /** + * 直接批量更新通道 + */ + void batchUpdateChannel(List channels); + + /** + * 直接批量添加 + */ + void batchAddChannel(List deviceChannels); } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java index 9223ced0..229bc0d2 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceChannelServiceImpl.java @@ -209,6 +209,47 @@ public class DeviceChannelServiceImpl implements IDeviceChannelService { @Override public List getDeviceByChannelId(String channelId) { + return channelMapper.getDeviceByChannelId(channelId); } + + @Override + public int deleteChannels(List deleteChannelList) { + return channelMapper.batchDel(deleteChannelList); + } + + @Override + public int channelsOnline(List channels) { + return channelMapper.batchOnline(channels); + } + + @Override + public int channelsOffline(List channels) { + return channelMapper.batchOffline(channels); + } + + @Override + public DeviceChannel getOne(String deviceId, String channelId){ + return channelMapper.queryChannel(deviceId, channelId); + } + + @Override + public void batchUpdateChannel(List channels) { + channelMapper.batchUpdate(channels); + for (DeviceChannel channel : channels) { + if (channel.getParentId() != null) { + channelMapper.updateChannelSubCount(channel.getDeviceId(), channel.getParentId()); + } + } + } + + @Override + public void batchAddChannel(List channels) { + channelMapper.batchAdd(channels); + for (DeviceChannel channel : channels) { + if (channel.getParentId() != null) { + channelMapper.updateChannelSubCount(channel.getDeviceId(), channel.getParentId()); + } + } + } } diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java index a3dd6a7e..48de5d2b 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java @@ -644,4 +644,6 @@ public class DeviceServiceImpl implements IDeviceService { public List getAll() { return deviceMapper.getAll(); } + + } diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java index 93f2a097..3f4d804c 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java @@ -197,6 +197,60 @@ public interface DeviceChannelMapper { @Update(value = {"UPDATE device_channel SET status=0 WHERE deviceId=#{deviceId}"}) void offlineByDeviceId(String deviceId); +// @Insert("") +// int batchAdd(List addChannels); + + @Insert("") int batchAdd(List addChannels); @@ -264,7 +285,7 @@ public interface DeviceChannelMapper { ", owner=#{item.owner}" + ", civilCode=#{item.civilCode}" + ", block=#{item.block}" + - ", block=#{item.subCount}" + + ", subCount=#{item.subCount}" + ", address=#{item.address}" + ", parental=#{item.parental}" + ", parentId=#{item.parentId}" + @@ -289,7 +310,8 @@ public interface DeviceChannelMapper { ", latitudeWgs84=#{item.latitudeWgs84}" + ", businessGroupId=#{item.businessGroupId}" + ", gpsTime=#{item.gpsTime}" + - "WHERE deviceId=#{item.deviceId} AND channelId=#{item.channelId}"+ + "WHERE id=#{item.id}" + + "WHERE deviceId=#{item.deviceId} AND channelId=#{item.channelId}" + "" + ""}) int batchUpdate(List updateChannels); @@ -403,4 +425,26 @@ public interface DeviceChannelMapper { @Select("select de.* from device de left join device_channel dc on de.deviceId = dc.deviceId where dc.channelId=#{channelId}") List getDeviceByChannelId(String channelId); + + + @Delete({""}) + int batchDel(List deleteChannelList); + + @Update({""}) + int batchOnline(List channels); + + @Update({""}) + int batchOffline(List channels); } diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml index d0a82895..bae99045 100644 --- a/src/main/resources/all-application.yml +++ b/src/main/resources/all-application.yml @@ -178,6 +178,8 @@ user-settings: send-to-platforms-when-id-lost: true # 保持通道状态,不接受notify通道状态变化, 兼容海康平台发送错误消息 refuse-channel-status-channel-form-notify: false + # 设置notify缓存队列最大长度,超过此长度的数据将返回486 BUSY_HERE,消息丢弃, 默认10000 + max-notify-count-queue: 10000 # 跨域配置,配置你访问前端页面的地址即可, 可以配置多个 allowed-origins: - http://localhost:8008