diff --git a/src/main/java/com/xydl/cac/iec/IecClient.java b/src/main/java/com/xydl/cac/iec/IecClient.java index 5b5a653..04cc63b 100644 --- a/src/main/java/com/xydl/cac/iec/IecClient.java +++ b/src/main/java/com/xydl/cac/iec/IecClient.java @@ -173,14 +173,14 @@ public class IecClient implements ClientEventListener { retry--; try { if (retry >= 5) { - Thread.sleep(10 * 1000); + StaticVariable.wait(10); this.reconnect(); } else if (retry == 4) { log.warn("61850订阅断线重连已失败5次, ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort()); - Thread.sleep(60 * 1000); + StaticVariable.wait(60); this.reconnect(); } else if (retry >= 1) { - Thread.sleep(60 * 1000); + StaticVariable.wait(60); this.reconnect(); } else { String err = "61850订阅断线重连已失败多次不再重连. ied=" + ied.getName() + ", ip=" + ied.getIp() + ", port=" + ied.getPort(); diff --git a/src/main/java/com/xydl/cac/model/StaticVariable.java b/src/main/java/com/xydl/cac/model/StaticVariable.java index 7c45c20..7789776 100644 --- a/src/main/java/com/xydl/cac/model/StaticVariable.java +++ b/src/main/java/com/xydl/cac/model/StaticVariable.java @@ -26,4 +26,12 @@ public class StaticVariable { public static List zsb_Cache = null; public static ConcurrentHashMap rule_Cache = new ConcurrentHashMap<>(); + public static void wait(int seconds) throws InterruptedException { + for (int i = 0; i < seconds; i++) { + if (shutdown == 1) { + break; + } + Thread.sleep(1000); + } + } }