From 23710f1c649354fb21317dd710a4b2ec53688a44 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 17 十一月 2022 17:01:54 +0800
Subject: [PATCH] 优化多网卡下的localIp获取

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java |   32 +++++++++++++++++---------------
 1 files changed, 17 insertions(+), 15 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java
index 3d5c294..a351445 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java
@@ -1,6 +1,5 @@
 package com.genersoft.iot.vmp.gb28181.transmit.callback;
 
-import com.alibaba.fastjson2.JSON;
 import com.genersoft.iot.vmp.vmanager.bean.DeferredResultEx;
 import org.springframework.stereotype.Component;
 import org.springframework.util.ObjectUtils;
@@ -130,23 +129,26 @@
 		if (deferredResultMap == null) {
 			return;
 		}
-		Set<String> ids = deferredResultMap.keySet();
-		for (String id : ids) {
-			DeferredResultEx result = deferredResultMap.get(id);
-			if (result == null) {
+		synchronized (this) {
+			deferredResultMap = map.get(msg.getKey());
+			if (deferredResultMap == null) {
 				return;
 			}
-			if (result.getFilter() != null) {
-				Object handler = result.getFilter().handler(msg.getData());
-				System.out.println(JSON.toJSONString(handler));
-				result.getDeferredResult().setResult(handler);
-			}else {
-				result.getDeferredResult().setResult(msg.getData());
+			Set<String> ids = deferredResultMap.keySet();
+			for (String id : ids) {
+				DeferredResultEx result = deferredResultMap.get(id);
+				if (result == null) {
+					return;
+				}
+				if (result.getFilter() != null) {
+					Object handler = result.getFilter().handler(msg.getData());
+					result.getDeferredResult().setResult(handler);
+				}else {
+					result.getDeferredResult().setResult(msg.getData());
+				}
+
 			}
-
+			map.remove(msg.getKey());
 		}
-		map.remove(msg.getKey());
 	}
-
-
 }

--
Gitblit v1.8.0