src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/NotifyRequestProcessor.java
@@ -116,14 +116,17 @@ logger.info("接收到消息:" + cmd); } } catch (DocumentException e) { throw new RuntimeException(e); } } logger.error("处理NOTIFY消息时错误", e); } finally { taskQueueHandlerRun = false; } } }); } } catch (SipException | InvalidArgumentException | ParseException e) { e.printStackTrace(); } finally { taskQueueHandlerRun = false; } } src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/CatalogResponseMessageHandler.java
@@ -35,6 +35,9 @@ import java.util.List; import java.util.concurrent.ConcurrentLinkedQueue; /** * 目录查询的回复 */ @Component public class CatalogResponseMessageHandler extends SIPRequestProcessorParent implements InitializingBean, IMessageHandler { @@ -85,22 +88,13 @@ // 回复200 OK try { responseAck(evt, Response.OK); } catch (SipException e) { throw new RuntimeException(e); } catch (InvalidArgumentException e) { throw new RuntimeException(e); } catch (ParseException e) { throw new RuntimeException(e); } if (!taskQueueHandlerRun) { taskQueueHandlerRun = true; taskExecutor.execute(()-> { while (!taskQueue.isEmpty()) { HandlerCatchData take = taskQueue.poll(); String key = DeferredResultHolder.CALLBACK_CMD_CATALOG + take.getDevice().getDeviceId(); Element rootElement = null; try { rootElement = getRootElement(take.getEvt(), take.getDevice().getCharset()); Element rootElement = getRootElement(take.getEvt(), take.getDevice().getCharset()); Element deviceListElement = rootElement.element("DeviceList"); Element sumNumElement = rootElement.element("SumNum"); Element snElement = rootElement.element("SN"); @@ -155,13 +149,23 @@ e.printStackTrace(); } catch (SipException e) { e.printStackTrace(); } } } finally { taskQueueHandlerRun = false; }); } } }); } } catch (SipException e) { throw new RuntimeException(e); } catch (InvalidArgumentException e) { throw new RuntimeException(e); } catch (ParseException e) { throw new RuntimeException(e); } finally { taskQueueHandlerRun = false; } } @Override public void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element rootElement) { src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/RecordInfoResponseMessageHandler.java
@@ -76,8 +76,8 @@ if (!taskQueueHandlerRun) { taskQueueHandlerRun = true; taskExecutor.execute(()->{ try { while (!taskQueue.isEmpty()) { try { HandlerCatchData take = taskQueue.poll(); Element rootElementForCharset = getRootElement(take.getEvt(), take.getDevice().getCharset()); String sn = getText(rootElementForCharset, "SN"); @@ -141,10 +141,11 @@ releaseRequest(take.getDevice().getDeviceId(), sn); } } } taskQueueHandlerRun = false; }catch (DocumentException e) { throw new RuntimeException(e); } finally { taskQueueHandlerRun = false; } } }); } @@ -155,6 +156,8 @@ e.printStackTrace(); } catch (ParseException e) { e.printStackTrace(); }finally { taskQueueHandlerRun = false; } } src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -105,6 +105,7 @@ redisCatchStorage.updateDevice(device); commander.deviceInfoQuery(device); sync(device); // TODO 如果设备下的通道级联到了其他平台,那么需要发送事件或者notify给上级平台 }else { deviceMapper.update(device); redisCatchStorage.updateDevice(device);