From 27e913d6d28a9cfa0785d15453a4de10fd36ce6d Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 10 二月 2025 11:17:59 +0800
Subject: [PATCH] 首页录像统计加上间歇

---
 ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java |   29 +++++++++++++++++++++--------
 1 files changed, 21 insertions(+), 8 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 9f873da..8857297 100644
--- a/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
+++ b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java
@@ -54,12 +54,14 @@
         String prefix = "http://";
         if ("127.0.0.1".equals(monitor.getIp())) {
             monitor.setPingOnline(Boolean.FALSE);
+            log.error("ip鏈夎"+monitor.getIp());
             return monitor;
         }
         try {
             res = selfHttpUtil.get(prefix + monitor.getIp(), null, null);
             monitor.setPingOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode());
         } catch (Exception e) {
+            log.error("web妫�娴嬬绾�"+monitor.getIp());
             monitor.setPingOnline(Boolean.FALSE);
         }
         // 濡傛灉http寰楀埌鐨勪笉鍦ㄧ嚎锛岄偅涔堝啀ping涓�涓�
@@ -84,11 +86,8 @@
             map = new HashMap<>();
         }
         if (!monitor.getPingOnline()) {
-            try {
-                reachable = InetAddress.getByName(monitor.getIp()).isReachable(5000);
-            } catch (IOException e) {
-                e.printStackTrace();
-            }
+            reachable = checkPing(monitor, reachable);
+            if(!reachable) log.error("ping妫�娴嬬绾�"+monitor.getIp());
             monitor.setPingOnline(reachable);
         }
         if (!monitor.getPingOnline()) {
@@ -98,19 +97,17 @@
             Date now = new Date();
             SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
             offTimeList.add(dateFormat.format(now));
+            monitor.setOffLineTimeStr(offTimeList);
             //鍒拌揪浜х敓宸ュ崟鐨勯槇鍊兼鏁�
             if (continueOffTimes>=times) {
                 //浜х敓浜嗗伐鍗曟墠浼氬瓨鍌ㄧ绾挎椂闂�,瀛樺偍鏈�杩戜竴娆′骇鐢熷伐鍗曠殑杩欏嚑涓绾挎椂闂寸偣
-                monitor.setOffLineTimeStr(offTimeList);
                 monitor.setCreateWorkOrder(Boolean.TRUE);
                 //浜х敓浜嗕竴娆″伐鍗曞垯娓呴櫎
                 continueOffTimes = 0;
-                offTimeList = new ArrayList<>();
             }
         }else {
             //濡傛灉鍦ㄧ嚎浜嗭紝娓呯┖杩炵画绂荤嚎娆℃暟锛屾竻绌虹绾挎椂闂�
             continueOffTimes = 0;
-            offTimeList = new ArrayList<>();
         }
         map.put("checkTimes", checkTimes);
         map.put("offLineTimes", offLineTimes);
@@ -122,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