From 0becc3c207412543ded0195cc4f897eb5434f24d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期五, 24 一月 2025 04:22:20 +0800
Subject: [PATCH] 多次ping

---
 ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
index 3263723..8857297 100644
--- a/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
+++ b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
@@ -86,11 +86,7 @@
             map = new HashMap<>();
         }
         if (!monitor.getPingOnline()) {
-            try {
-                reachable = InetAddress.getByName(monitor.getIp()).isReachable(5000);
-            } catch (IOException e) {
-                log.error("Ping寮傚父{}",e.getMessage());
-            }
+            reachable = checkPing(monitor, reachable);
             if(!reachable) log.error("ping妫�娴嬬绾�"+monitor.getIp());
             monitor.setPingOnline(reachable);
         }
@@ -123,6 +119,22 @@
         return monitor;
     }
 
+    private boolean checkPing(TMonitorResult monitor, boolean reachable) {
+        try {
+            int[] sleepTimes = {5000, 15000, 30000};
+            for (int sleepTime : sleepTimes) {
+                reachable = InetAddress.getByName(monitor.getIp()).isReachable(5000);
+                if (reachable) {
+                    break;
+                }
+                Thread.sleep(sleepTime);
+            }
+        } catch (Exception e) {
+            log.error("Ping寮傚父{}",e.getMessage());
+        }
+        return reachable;
+    }
+
 
     /**
      * 鐩戞祴鐐逛綅鍦ㄧ嚎

--
Gitblit v1.8.0