From 72af7371632c97fc658b4e17be16e4da16095b3b Mon Sep 17 00:00:00 2001 From: qiminbao Date: Tue, 28 Oct 2025 17:07:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=AD=E5=BC=80=E9=87=8D?= =?UTF-8?q?=E8=BF=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduler/service/BusinessTasks.java | 45 +++++++++++-------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/tongran/agent/client/scheduler/service/BusinessTasks.java b/src/main/java/com/tongran/agent/client/scheduler/service/BusinessTasks.java index 33696c4..7288315 100644 --- a/src/main/java/com/tongran/agent/client/scheduler/service/BusinessTasks.java +++ b/src/main/java/com/tongran/agent/client/scheduler/service/BusinessTasks.java @@ -117,25 +117,34 @@ public class BusinessTasks { timestamp = Math.round(timestamp / 1000.0); int count = heartbeatTask.incrementAndGet(); AssertLog.info("心跳定时任务执行 - 时间: {},task #{}", LocalDateTime.now(), count); - // 业务处理 - // 判定客户端与服务端是否连接 - if (Objects.nonNull(sessionManager.getSessionById(GlobalConfig.CLIENT_ID))) { - if(StringUtils.isBlank(GlobalConfig.DEVICE_SN)){ - GlobalConfig.DEVICE_SN = AgentUtil.getDeviceSN(); + boolean success = true; + int activeConnect = client.getActiveConnections(); + if(activeConnect == 0){ + success = agentService.connection(); + } + if(success){ + // 业务处理 + // 判定客户端与服务端是否连接 + if (Objects.nonNull(sessionManager.getSessionById(GlobalConfig.CLIENT_ID))) { + if(StringUtils.isBlank(GlobalConfig.DEVICE_SN)){ + GlobalConfig.DEVICE_SN = AgentUtil.getDeviceSN(); + } + // 发送心跳包 + JSONObject object = new JSONObject(); + object.put("clientId", GlobalConfig.CLIENT_ID); + object.put("logicalNode", agentService.getLogicalNode()); + object.put("sn", GlobalConfig.DEVICE_SN); + object.put("strength","31"); + object.put("name", properties.getName()); + object.put("version", properties.getVersion()); + object.put("startupTime", GlobalConfig.startupTime); + object.put("timestamp",timestamp); + Message message = Message.builder().clientId(GlobalConfig.CLIENT_ID).dataType(MsgEnum.心跳上报.getValue()).data(object.toString()).build(); + sessionManager.writeAndFlush(sessionManager.getSessionById(GlobalConfig.CLIENT_ID).getChannel(), message); + AssertLog.info("发送心跳包={}",JSON.toJSONString(message)); } - // 发送心跳包 - JSONObject object = new JSONObject(); - object.put("clientId", GlobalConfig.CLIENT_ID); - object.put("logicalNode", agentService.getLogicalNode()); - object.put("sn", GlobalConfig.DEVICE_SN); - object.put("strength","31"); - object.put("name", properties.getName()); - object.put("version", properties.getVersion()); - object.put("startupTime", GlobalConfig.startupTime); - object.put("timestamp",timestamp); - Message message = Message.builder().clientId(GlobalConfig.CLIENT_ID).dataType(MsgEnum.心跳上报.getValue()).data(object.toString()).build(); - sessionManager.writeAndFlush(sessionManager.getSessionById(GlobalConfig.CLIENT_ID).getChannel(), message); - AssertLog.info("发送心跳包={}",JSON.toJSONString(message)); + }else{ + AssertLog.info("心跳定时任务执行失败-连接断开"); } AssertLog.info("心跳定时任务执行 - task #{} completed", count); }