From ecb2f242a39b5cd0605c08b2b8a0be0cdb18603a Mon Sep 17 00:00:00 2001 From: huangfeng Date: Mon, 4 Nov 2024 09:23:19 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E5=81=9C=E6=AD=A2?= =?UTF-8?q?=E9=87=87=E9=9B=86=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/xydl/cac/iec/RealTimeDataService.java | 25 ++++++++++--------- 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java index 54a5715..069c9b1 100644 --- a/src/main/java/com/xydl/cac/iec/RealTimeDataService.java +++ b/src/main/java/com/xydl/cac/iec/RealTimeDataService.java @@ -81,6 +81,17 @@ public class RealTimeDataService { } public void stopCollect(Integer iedId) { + this.onlyStop(iedId); + Optional optional = iedRepository.findById(iedId); + if (optional.isPresent()) { + IcdIed ied = optional.get(); + ied.setStart(Constants.FALSE); + iedRepository.save(ied); + log.info("61850停止订阅, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort()); + } + } + + private void onlyStop(Integer iedId) { IecClient iecClient = clientMap.get(iedId); if (iecClient != null) { iecClient.keep = false; @@ -90,13 +101,6 @@ public class RealTimeDataService { iecClient.disconnect(); clientMap.remove(iedId); } - Optional optional = iedRepository.findById(iedId); - if (optional.isPresent()) { - IcdIed ied = optional.get(); - ied.setStart(Constants.FALSE); - iedRepository.save(ied); - log.info("61850停止订阅, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort()); - } } @PreDestroy @@ -104,11 +108,8 @@ public class RealTimeDataService { log.info("关闭61850订阅服务."); Iterator it = clientMap.keySet().iterator(); while (it.hasNext()) { - Integer key = it.next(); - IecClient iecClient = clientMap.get(key); - iecClient.disableReporting(); - iecClient.disconnect(); - clientMap.remove(key); + Integer iedId = it.next(); + this.onlyStop(iedId); } }