瀏覽代碼

maintenance 20221123'

shjung 2 年之前
父節點
當前提交
84ac5c00e1

+ 15 - 1
src/main/java/com/its/pis/entity/TbPisInfr.java

@@ -19,6 +19,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.web.socket.TextMessage;
 
 import java.io.IOException;
+import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.Map;
@@ -50,7 +51,7 @@ public class TbPisInfr {
 	private boolean                 isDupLogin;
 
 	private TbPisInfrStts 			stts;
-	private PisWebSocketSession session;
+	private PisWebSocketSession     session;
 	private Channel 				dupChannel;
 	private long          			syncTime;
 
@@ -74,10 +75,23 @@ public class TbPisInfr {
 		this.connectCount = 0;
 		this.connectTm = "";
 		this.disConnectTm = "";
+		this.lastRecvTime = 0;
 
 		initNet();
 	}
 
+	public void setLastRecvTime(long lastRecvTime) {
+		this.lastRecvTime = lastRecvTime;
+		MainUI mainUI = MainUI.getInstance();
+		if (mainUI != null) {
+			mainUI.updateCtlrStts(this);
+		}
+	}
+	public String getLastRecvTimeFmt() {
+		SimpleDateFormat sdfDate = new SimpleDateFormat("MM-dd HH:mm:ss");
+		return sdfDate.format(lastRecvTime);
+	}
+
 	public PisWebSocketHandlerC2C_C createWebsocketClient() {
 		if (this.websocketClient == null) {
 			this.websocketClient = new PisWebSocketHandlerC2C_C(this);

+ 1 - 1
src/main/java/com/its/pis/scheduler/SchedulerTask.java

@@ -36,7 +36,7 @@ public class SchedulerTask {
         log.info("          UnitSystSchedule: ..end. {} ms. {}", elapsed.milliSeconds(), Thread.currentThread().getName());
     }
 
-    @Scheduled(cron = "0/5 * * * * *")  // 5초 주기 작업 실행
+    @Scheduled(cron = "0/10 * * * * *")  // 10초 주기 작업 실행
     public void C2FSessionManageSchedule() {
         if (!this.processConfig.isStartSchedule()) {
             return;

+ 4 - 4
src/main/java/com/its/pis/service/PisInfrService.java

@@ -290,15 +290,15 @@ public class PisInfrService {
             if (pis.getNetState() >= NET.LOGIN_REQ && pis.getSession() != null) {
                 // 주차정보시스템 통신정상
                 long recvTimout = currMilliSeconds - pis.getLastRecvTime();
-                if (recvTimout > ((pis.getPIS_CYCLE() * 5) * 1000)) {
-                    log.error("Idle timeout: {}, ipAddr={}", pis.getPIS_ID(), pis.getConnectIpAddr());
-                    pis.channelClosed();
+                if (recvTimout > ((pis.getPIS_CYCLE() * 1000L) * 3)) {
+                    log.error("Idle timeout: {}, ipAddr={}, Idle={} sec.", pis.getPIS_ID(), pis.getConnectIpAddr(), (int)(recvTimout/1000L));
+                    pis.channelClose();
                     continue;
                 }
 
                 if (recvTimout > (pis.getPIS_CYCLE() * 1000L)) {
                     boolean isSendOk = pis.requestRlTimeInfo();
-                    log.info("Idle request: {}, ipAddr={}, sendOk={}", pis.getPIS_ID(), pis.getConnectIpAddr(), isSendOk);
+                    log.info("Idle request: {}, ipAddr={}, sendOk={}, Idle={} sec.", pis.getPIS_ID(), pis.getConnectIpAddr(), isSendOk, (int)(recvTimout/1000L));
                 }
             }
         }

+ 5 - 1
src/main/java/com/its/pis/ui/CtlrSttsTableModel.java

@@ -26,7 +26,8 @@ public class CtlrSttsTableModel extends AbstractTableModel {
             "END-POINT",
             "TOKEN",
             "연결 시각",
-            "연결종료 시각"
+            "연결종료 시각",
+            "정보수신 시각"
     };
     public static final String[] netStateStr = {
             "Close", "Login", "Connect",
@@ -121,6 +122,9 @@ public class CtlrSttsTableModel extends AbstractTableModel {
                 case 12:
                     returnValue = info.getDisConnectTm();
                     break;
+                case 13:
+                    returnValue = info.getLastRecvTimeFmt();
+                    break;
             }
         }
         return returnValue;

+ 3 - 2
src/main/java/com/its/pis/ui/MainUI.java

@@ -291,8 +291,8 @@ public class MainUI {
 
         TableColumnModel getColumnModel = tblCtlrList.getColumnModel();
         getColumnModel.getColumn(0).setPreferredWidth(30);  //  "S",
-        getColumnModel.getColumn(1).setPreferredWidth(50);  //  "번호",
-        getColumnModel.getColumn(2).setPreferredWidth(170);  //  "주차장ID",
+        getColumnModel.getColumn(1).setPreferredWidth(40);  //  "번호",
+        getColumnModel.getColumn(2).setPreferredWidth(140);  //  "주차장ID",
         getColumnModel.getColumn(3).setPreferredWidth(180); //  "명칭",
         getColumnModel.getColumn(4).setPreferredWidth(120); //  "IP",
         getColumnModel.getColumn(5).setPreferredWidth(55);  //  "PORT",
@@ -303,6 +303,7 @@ public class MainUI {
         getColumnModel.getColumn(10).setPreferredWidth(150);  //  "TOKEN",
         getColumnModel.getColumn(11).setPreferredWidth(140); //  "connect time",
         getColumnModel.getColumn(12).setPreferredWidth(140); // "disconnect time"
+        getColumnModel.getColumn(13).setPreferredWidth(140); // "disconnect time"
 
         getColumnModel.getColumn(0).setMaxWidth(30);
         getColumnModel.getColumn(0).setMinWidth(30);