From b5df1cee65f3e9dcf554efcd3f1642a8c79d1e76 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期一, 30 九月 2024 02:12:24 +0800 Subject: [PATCH] 点位监测更换对象+存入mongo+提取utils --- ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java | 105 +++++++++++++--------------------------------------- 1 files changed, 27 insertions(+), 78 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java index a3c762d..5228eae 100644 --- a/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java +++ b/ycl-server/src/main/java/com/ycl/thread/OnlineCheckThread.java @@ -1,9 +1,9 @@ package com.ycl.thread; -import com.ycl.platform.domain.entity.TMonitor; import com.ycl.platform.domain.entity.WorkOrder; +import com.ycl.platform.domain.result.SYS.TMonitorResult; import com.ycl.platform.domain.vo.OnlineThreadVO; -import com.ycl.platform.domain.vo.UpdateOnlineVO; +import com.ycl.utils.CheckPointUtil; import com.ycl.utils.http.SelfHttpUtil; import constant.RedisConstant; import enumeration.ErrorType; @@ -12,13 +12,11 @@ import org.springframework.data.redis.core.RedisTemplate; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; +import org.springframework.util.CollectionUtils; import java.io.IOException; import java.net.InetAddress; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Objects; +import java.util.*; import java.util.concurrent.Callable; /** @@ -26,20 +24,14 @@ * @date锛�2024/9/10 11:43 */ @Slf4j -public class OnlineCheckThread implements Callable<OnlineThreadVO> { +public class OnlineCheckThread implements Callable<TMonitorResult> { - private TMonitor monitor; - - private RedisTemplate redisTemplate; - - private SelfHttpUtil selfHttpUtil; - + private TMonitorResult monitor; + private CheckPointUtil checkPointUtil; private Integer times; - - public OnlineCheckThread(TMonitor monitor, RedisTemplate redisTemplate, SelfHttpUtil selfHttpUtil, Integer times) { + public OnlineCheckThread(TMonitorResult monitor, CheckPointUtil checkPointUtil,Integer times) { this.monitor = monitor; - this.redisTemplate = redisTemplate; - this.selfHttpUtil = selfHttpUtil; + this.checkPointUtil = checkPointUtil; this.times = times; } @@ -51,79 +43,36 @@ this.times = times; } - public SelfHttpUtil getSelfHttpUtil() { - return selfHttpUtil; - } - - public void setSelfHttpUtil(SelfHttpUtil selfHttpUtil) { - this.selfHttpUtil = selfHttpUtil; - } - - public TMonitor getMonitor() { + public TMonitorResult getMonitor() { return monitor; } - public void setMonitor(TMonitor monitor) { + public void setMonitor(TMonitorResult monitor) { this.monitor = monitor; } - public RedisTemplate getRedisTemplate() { - return redisTemplate; + public CheckPointUtil getCheckPointUtil() { + return checkPointUtil; } - public void setRedisTemplate(RedisTemplate redisTemplate) { - this.redisTemplate = redisTemplate; + public void setCheckPointUtil(CheckPointUtil checkPointUtil) { + this.checkPointUtil = checkPointUtil; } @Override - public OnlineThreadVO call() throws Exception { - // 鍏堟娴嬭兘鍚﹁闂ip鐨勭綉椤� - ResponseEntity<Object> res = null; - OnlineThreadVO vo = new OnlineThreadVO(); - vo.setIp(monitor.getIp()); - log.info("鐩戞祴IP锛�" + monitor.getIp()); - String prefix = "http://"; - if ("127.0.0.1".equals(monitor.getIp())) { - vo.setOnline(Boolean.FALSE); - return vo; + public TMonitorResult call() throws Exception { + TMonitorResult result = checkPointUtil.check(monitor); + // 涓�澶╁唴鐩戞祴鍒扮绾�1娆′互涓婏紝鐢熸垚宸ュ崟 + if (result.getOffLineCount() >= times) { + WorkOrder workOrder = new WorkOrder(); + workOrder.setSerialNumber(result.getNo()); + List<String> errList = new ArrayList<>(); + errList.add(ErrorType.DEVICE_OFFLINE.getValue()); + workOrder.setErrorTypeList(errList); + workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); + result.setWorkOrder(workOrder); } - try { - res = selfHttpUtil.get(prefix + monitor.getIp(), null, null); - vo.setOnline(Objects.nonNull(res) && HttpStatus.OK == res.getStatusCode()); - } catch (Exception e) { - vo.setOnline(Boolean.FALSE); - } - - // 濡傛灉http寰楀埌鐨勪笉鍦ㄧ嚎锛岄偅涔堝啀ping涓�涓� - boolean reachable = false; - if (!vo.getOnline()) { - try { - reachable = InetAddress.getByName(monitor.getIp()).isReachable(3000); - } catch (IOException e) { - e.printStackTrace(); - } - vo.setOnline(reachable); - } - if (!vo.getOnline()) { - Integer outLineTimes = (Integer) redisTemplate.opsForHash().get(RedisConstant.ONLINE_KEY, monitor.getIp()); - if (Objects.isNull(outLineTimes)) { - outLineTimes = 1; - } else { - outLineTimes += 1; - } - redisTemplate.opsForHash().put(RedisConstant.ONLINE_KEY, monitor.getIp(), outLineTimes); - // 涓�澶╁唴鐩戞祴鍒扮绾�1娆′互涓婏紝鐢熸垚宸ュ崟 - if (outLineTimes >= times) { - WorkOrder workOrder = new WorkOrder(); - workOrder.setSerialNumber(monitor.getSerialNumber()); - List<String> errList = new ArrayList<>(); - errList.add(ErrorType.DEVICE_OFFLINE.getValue()); - workOrder.setErrorTypeList(errList); - workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); - vo.setWorkOrder(workOrder); - } - } - return vo; + return result; } } -- Gitblit v1.8.0