From 57ff679fd4d8117c1be87c06059dc1f9ddf914d3 Mon Sep 17 00:00:00 2001 From: liusuyi <1951119284@qq.com> Date: 星期五, 09 八月 2024 17:06:11 +0800 Subject: [PATCH] 优化 --- src/main/java/com/ard/utils/netty/tcp/RadarNettyTcpClient.java | 68 ++++++++++++++++++++++++++++++++- 1 files changed, 65 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/ard/utils/netty/tcp/RadarNettyTcpClient.java b/src/main/java/com/ard/utils/netty/tcp/RadarNettyTcpClient.java index 29e9230..3093c1e 100644 --- a/src/main/java/com/ard/utils/netty/tcp/RadarNettyTcpClient.java +++ b/src/main/java/com/ard/utils/netty/tcp/RadarNettyTcpClient.java @@ -1,5 +1,8 @@ package com.ard.utils.netty.tcp; - +import java.util.List; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; import com.ard.alarm.radar.domain.ArdEquipRadar; import com.ard.alarm.radar.service.IArdEquipRadarService; import com.ard.utils.netty.tcp.handler.*; @@ -15,6 +18,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; import org.springframework.stereotype.Component; +import javax.annotation.PostConstruct; import javax.annotation.Resource; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -141,8 +145,8 @@ /** * 鐩戞祴闆疯揪杩炴帴鐘舵�� */ - @Scheduled(cron = "0/3 * * * * ?") - public void monitorConnectStatus() { +// @Scheduled(cron = "0/5 * * * * ?") + public void monitorConnectStatus1() { try { log.debug("瀹炴椂鐩戞祴闆疯揪杩炴帴鐘舵��..."); List<ArdEquipRadar> ardEquipRadars = ardEquipRadarService.selectArdEquipRadarList(new ArdEquipRadar()); @@ -186,4 +190,62 @@ log.error("瀹氭椂鐩戞祴闆疯揪杩炴帴鐘舵�佸紓甯�:" + e.getMessage()); } } + + + @PostConstruct + public void monitorConnectStatus() { + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); + Runnable task = () -> { + try { + // 瀹氭椂浠诲姟鐨勯�昏緫 + log.debug("瀹炴椂鐩戞祴闆疯揪杩炴帴鐘舵��..."); + List<ArdEquipRadar> ardEquipRadars = ardEquipRadarService.selectArdEquipRadarList(new ArdEquipRadar()); + ardEquipRadars.stream().forEach(ardEquipRadar -> { + // 鍒ゆ柇涓庨浄杈惧鎴风杩炴帴鐘舵�� + boolean online = SERVER_MAP.containsKey(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort()); + if (online) { + log.debug("闆疯揪銆�" + ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort() + "銆戠姸鎬侊細鍦ㄧ嚎"); + // 杩炴帴闆疯揪瀹㈡埛绔垚鍔� 鍒ゆ柇鍛ㄦ壂鐘舵�� + if (aroundScanfMap.containsKey(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort())) { + Integer state = aroundScanfMap.get(ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort()); + log.debug("闆疯揪銆�" + ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort() + "銆戣幏鍙栧埌鍛ㄦ壂鐘舵�侊細" + state); + if (state == 1) { // 1-鍛ㄦ壂鎵撳紑-杩炴帴鎴愬姛 + log.debug("闆疯揪銆�" + ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort() + "銆戝懆鎵姸鎬佸紑"); + if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("1")) { + ardEquipRadar.setState("1"); + ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + } + } else { + log.debug("闆疯揪銆�" + ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort() + "銆戝懆鎵姸鎬佸叧"); + if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("2")) { + // 2-鍛ㄦ壂鏈紑 + ardEquipRadar.setState("2"); + ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + } + } + } else { + log.debug("闆疯揪銆�" + ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort() + "銆戞湭鑾峰彇鍒板懆鎵姸鎬�"); + if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("2")) { + // 2-鍛ㄦ壂鏈紑 + ardEquipRadar.setState("2"); + ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + } + } + } else { + log.debug("闆疯揪銆�" + ardEquipRadar.getIp() + ":" + ardEquipRadar.getPort() + "銆戠姸鎬侊細绂荤嚎"); + // 杩炴帴闆疯揪瀹㈡埛绔け璐� + if (ardEquipRadar.getState() == null || !ardEquipRadar.getState().equals("0")) { + // 0-瀹㈡埛绔笉閫� + ardEquipRadar.setState("0"); + ardEquipRadarService.updateArdEquipRadar(ardEquipRadar); + } + } + }); + } catch (Exception e) { + log.error("瀹氭椂鐩戞祴闆疯揪杩炴帴鐘舵�佸紓甯�:" + e.getMessage()); + } + }; + + scheduler.scheduleAtFixedRate(task, 0, 5, TimeUnit.SECONDS); + } } -- Gitblit v1.9.3