From 0993bedb46648539bef735289f905afa3b4ef8dd Mon Sep 17 00:00:00 2001 From: panll <1018729+pan648540858@user.noreply.gitee.com> Date: 星期三, 02 三月 2022 14:26:54 +0800 Subject: [PATCH] !11 修改内存泄露 Merge pull request !11 from ydpd/wvp-28181-2.0 --- src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java | 29 ++++++++++++++++++++++++----- 1 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java index b850729..78b5d53 100644 --- a/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java +++ b/src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/platform/PlatformController.java @@ -149,8 +149,16 @@ if (updateResult) { // 淇濆瓨鏃跺惎鐢ㄥ氨鍙戦�佹敞鍐� if (parentPlatform.isEnable()) { - // 鍙淇濆瓨灏卞彂閫佹敞鍐� - commanderForPlatform.register(parentPlatform, null, null); + if (parentPlatformOld.isStatus()) { + commanderForPlatform.unregister(parentPlatformOld, null, eventResult -> { + // 鍙淇濆瓨灏卞彂閫佹敞鍐� + commanderForPlatform.register(parentPlatform, null, null); + }); + }else { + // 鍙淇濆瓨灏卞彂閫佹敞鍐� + commanderForPlatform.register(parentPlatform, null, null); + } + } else if (parentPlatformOld != null && parentPlatformOld.isEnable() && !parentPlatform.isEnable()){ // 鍏抽棴鍚敤鏃舵敞閿� commanderForPlatform.unregister(parentPlatform, null, null); } @@ -203,10 +211,21 @@ if (updateResult) { // 淇濆瓨鏃跺惎鐢ㄥ氨鍙戦�佹敞鍐� if (parentPlatform.isEnable()) { - // 鍙淇濆瓨灏卞彂閫佹敞鍐� - commanderForPlatform.register(parentPlatform, null, null); + if (parentPlatformOld.isStatus()) { + commanderForPlatform.unregister(parentPlatformOld, null, null); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + // 鍙淇濆瓨灏卞彂閫佹敞鍐� + commanderForPlatform.register(parentPlatform, null, null); + }else { + // 鍙淇濆瓨灏卞彂閫佹敞鍐� + commanderForPlatform.register(parentPlatform, null, null); + } } else if (parentPlatformOld != null && parentPlatformOld.isEnable() && !parentPlatform.isEnable()){ // 鍏抽棴鍚敤鏃舵敞閿� - commanderForPlatform.unregister(parentPlatform, null, null); + commanderForPlatform.unregister(parentPlatformOld, null, null); } wvpResult.setCode(0); wvpResult.setMsg("success"); -- Gitblit v1.8.0