From fcbf54ac3b86f5545cf120b37e4cfe956919f338 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期四, 17 七月 2025 09:50:37 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/impl/NyShuttleThread.java | 22 +++++++++++++++++++--- 1 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java index 33142bc..812cfc3 100644 --- a/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java +++ b/src/main/java/com/zy/core/thread/impl/NyShuttleThread.java @@ -55,6 +55,7 @@ private RedisUtil redisUtil; private ShuttleProtocol shuttleProtocol; private Socket socket; + private long lastConnectTime = System.currentTimeMillis(); private static final boolean DEBUG = false;//璋冭瘯妯″紡 @@ -160,6 +161,12 @@ if (deviceDataLogService == null) { return; } + + //绂荤嚎涓嶅仛鏃ュ織瀛樺偍 + if (shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.OFFLINE)) { + return; + } + DeviceDataLog deviceDataLog = new DeviceDataLog(); deviceDataLog.setOriginData(JSON.toJSONString(this.originDeviceData)); deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol)); @@ -203,7 +210,10 @@ JSONObject body = response.getJSONObject("body"); if (body.containsKey("workingMode")) { //read - socketReadResults.add(body); + JSONObject socketReadResult = new JSONObject(); + socketReadResult.put("body", body); + socketReadResult.put("originDeviceData", sb); + socketReadResults.add(socketReadResult); return; } } @@ -300,8 +310,9 @@ return; } - JSONObject data = this.socketReadResults.get(0); + JSONObject socketReadResult = this.socketReadResults.get(0); this.socketReadResults.remove(0); + JSONObject data = socketReadResult.getJSONObject("body"); if (data == null) { if (System.currentTimeMillis() - shuttleProtocol.getLastOnlineTime() > 1000 * 60) { //鏈�鍚庝竴娆′笂绾挎椂闂磋秴杩�60s锛岃瀹氱绾� @@ -371,7 +382,7 @@ this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE); } - this.originDeviceData = data; + this.originDeviceData = socketReadResult.get("originDeviceData"); OutputQueue.SHUTTLE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); } @@ -1068,12 +1079,17 @@ @Override public boolean connect() { try { + if (System.currentTimeMillis() - lastConnectTime < 1000 * 10) { + return false; + } + InetAddress address = InetAddress.getByName(slave.getIp()); if (address.isReachable(10000)) { Socket socket = new Socket(slave.getIp(), slave.getPort()); socket.setSoTimeout(10000); socket.setKeepAlive(true); this.socket = socket; + this.lastConnectTime = System.currentTimeMillis(); log.info(MessageFormat.format("銆恵0}銆戝洓鍚戠┛姊溅Socket閾炬帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); } } catch (Exception e) { -- Gitblit v1.9.1