From 3b21f385cdae7d94fce1ebba6abb06a893f57114 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 02 十一月 2021 10:40:29 +0800 Subject: [PATCH] 对需要向设备发起请求的http请求,使用缓存,等待设备请求返回的时候一次性释放所有请求 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java index 6dd31ee..8d5a37f 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/MobilePosition/MobilePositionController.java @@ -1,6 +1,7 @@ package com.genersoft.iot.vmp.vmanager.gb28181.MobilePosition; import java.util.List; +import java.util.UUID; import javax.sip.message.Response; @@ -111,10 +112,13 @@ @GetMapping("/realtime/{deviceId}") public DeferredResult<ResponseEntity<MobilePosition>> realTimePosition(@PathVariable String deviceId) { Device device = storager.queryVideoDevice(deviceId); + String uuid = UUID.randomUUID().toString(); + String key = DeferredResultHolder.CALLBACK_CMD_MOBILEPOSITION + deviceId; cmder.mobilePostitionQuery(device, event -> { Response response = event.getResponse(); RequestMessage msg = new RequestMessage(); - msg.setId(DeferredResultHolder.CALLBACK_CMD_MOBILEPOSITION + deviceId); + msg.setId(uuid); + msg.setKey(key); msg.setData(String.format("鑾峰彇绉诲姩浣嶇疆淇℃伅澶辫触锛岄敊璇爜锛� %s, %s", response.getStatusCode(), response.getReasonPhrase())); resultHolder.invokeResult(msg); }); @@ -123,11 +127,12 @@ logger.warn(String.format("鑾峰彇绉诲姩浣嶇疆淇℃伅瓒呮椂")); // 閲婃斁rtpserver RequestMessage msg = new RequestMessage(); - msg.setId(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId); + msg.setId(uuid); + msg.setKey(key); msg.setData("Timeout"); resultHolder.invokeResult(msg); }); - resultHolder.put(DeferredResultHolder.CALLBACK_CMD_CATALOG+deviceId, result); + resultHolder.put(key, uuid, result); return result; } -- Gitblit v1.8.0