From b498e2fcf21ee4f612dfaf0b45a945c52da37c60 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 12 五月 2023 12:36:38 +0800
Subject: [PATCH] 更新文档
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java | 27 ++++++++++++++++++++++-----
1 files changed, 22 insertions(+), 5 deletions(-)
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 4260641..5dae826 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,11 +76,16 @@
@Autowired
private IDeviceChannelService deviceChannelService;
+ @Autowired
+ private NotifyRequestForCatalogProcessor notifyRequestForCatalogProcessor;
+
private ConcurrentLinkedQueue<HandlerCatchData> taskQueue = new ConcurrentLinkedQueue<>();
@Qualifier("taskExecutor")
@Autowired
private ThreadPoolTaskExecutor taskExecutor;
+
+ private int maxQueueCount = 30000;
@Override
public void afterPropertiesSet() throws Exception {
@@ -91,7 +96,15 @@
@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 @@
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 @@
if (CmdType.CATALOG.equals(cmd)) {
logger.info("鎺ユ敹鍒癈atalog閫氱煡");
- processNotifyCatalogList(take.getEvt());
+// processNotifyCatalogList(take.getEvt());
+ notifyRequestForCatalogProcessor.process(take.getEvt());
} else if (CmdType.ALARM.equals(cmd)) {
logger.info("鎺ユ敹鍒癆larm閫氱煡");
processNotifyAlarm(take.getEvt());
@@ -132,7 +149,7 @@
/**
* 澶勭悊MobilePosition绉诲姩浣嶇疆Notify
- *
+ *
* @param evt
*/
private void processNotifyMobilePosition(RequestEvent evt) {
@@ -236,7 +253,7 @@
/***
* 澶勭悊alarm璁惧鎶ヨNotify
- *
+ *
* @param evt
*/
private void processNotifyAlarm(RequestEvent evt) {
@@ -346,7 +363,7 @@
/***
* 澶勭悊catalog璁惧鐩綍鍒楄〃Notify
- *
+ *
* @param evt
*/
private void processNotifyCatalogList(RequestEvent evt) {
--
Gitblit v1.8.0