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 ++++++++++++++++++++++++++++++++-
src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java | 3 -
2 files changed, 66 insertions(+), 5 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);
+ }
}
diff --git a/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
index e62372a..dd76e15 100644
--- a/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
+++ b/src/main/java/com/ard/utils/netty/tcp/handler/ClientHandler.java
@@ -18,8 +18,7 @@
import java.net.InetSocketAddress;
import java.text.SimpleDateFormat;
import java.util.*;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.TimeUnit;
+import java.util.concurrent.*;
import static com.ard.utils.netty.tcp.RadarNettyTcpClient.aroundScanfMap;
import static com.ard.utils.util.ByteUtils.toLittleEndian;
--
Gitblit v1.9.3