From 71f61d13531b3e2a0099ba5afe3f268c99c5bacf Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期四, 29 五月 2025 18:13:33 +0800 Subject: [PATCH] 修改大屏录像可用率指标,点位在线指标,数据中心录像可用率, --- ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java | 31 ++++++++++++++++++++++++------- 1 files changed, 24 insertions(+), 7 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..cc25556 100644 --- a/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java +++ b/ycl-server/src/main/java/com/ycl/utils/CheckPointUtil.java @@ -49,6 +49,12 @@ * @return */ public TMonitorResult check(TMonitorResult monitor,Integer times) { + // TMonitorResult(deptId=202, ip=51.95.48.18, online=0, +// onlineStr=null, pingOnline=true, pingOnlineStr=null, +// checkCount=1, offLineCount=0, offLineTimeStr=null, +// monitorType=3, name=DX_R涓変腑澶ч棬鍓嶈矾娈靛乏渚т汉琛岄亾2_鍏ㄦ櫙, +// workOrder=null, pointId=null, createWorkOrder=null, dynamicColumnList=null), + // 鍏堟娴嬭兘鍚﹁闂ip鐨勭綉椤� ResponseEntity<String> res = null; String prefix = "http://"; @@ -61,7 +67,6 @@ 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涓�涓� @@ -86,12 +91,7 @@ map = new HashMap<>(); } if (!monitor.getPingOnline()) { - try { - reachable = InetAddress.getByName(monitor.getIp()).isReachable(5000); - } catch (IOException e) { - log.error("Ping寮傚父{}",e.getMessage()); - } - if(!reachable) log.error("ping妫�娴嬬绾�"+monitor.getIp()); + reachable = checkPing(monitor, reachable); monitor.setPingOnline(reachable); } if (!monitor.getPingOnline()) { @@ -120,9 +120,26 @@ redisTemplate.opsForHash().put(RedisConstant.ONLINE_KEY, monitor.getNo(), map); monitor.setCheckCount(checkTimes); monitor.setOffLineCount(offLineTimes); + 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); + } + return reachable; + } + /** * 鐩戞祴鐐逛綅鍦ㄧ嚎 -- Gitblit v1.8.0