From 0c2954b8bab8ba99a10d9fd33710086a34ce5103 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Thu, 28 Nov 2024 15:10:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/access/handler/MqttMessageHandler.java | 1 + .../access/listener/RedisKeyExpirationListener.java | 12 ++++++++++++ .../java/com/njcn/access/runner/AutoAccessTimer.java | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java b/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java index c90e802..184d022 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/handler/MqttMessageHandler.java @@ -267,6 +267,7 @@ public class MqttMessageHandler { CsDevModelPO po = devModelFeignClient.findModel(item.getDevType(),item.getVersionNo(),item.getVersionDate()).getData(); if (Objects.isNull(po)){ log.error(AccessResponseEnum.MODEL_NO_FIND.getMessage()); + logDto.setOperate(nDid + "模板缺失"); logDto.setResult(0); logDto.setFailReason(AccessResponseEnum.MODEL_NO_FIND.getMessage()); csLogsFeignClient.addUserLog(logDto); diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/listener/RedisKeyExpirationListener.java b/iot-access/access-boot/src/main/java/com/njcn/access/listener/RedisKeyExpirationListener.java index 0564b52..6fb8edc 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/listener/RedisKeyExpirationListener.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/listener/RedisKeyExpirationListener.java @@ -134,6 +134,12 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene //logDto.setOperate(nDid +"客户端离线进入定时任务"); logDto.setOperate(nDid +"装置离线"); sendMessage(nDid); + + //记录装置掉线时间 + CsDeviceOnlineLogs record = onlineLogsService.findLastData(nDid); + record.setOfflineTime(LocalDateTime.now()); + onlineLogsService.updateById(record); + scheduler.shutdown(); } } catch (InterruptedException e) { @@ -154,6 +160,12 @@ public class RedisKeyExpirationListener extends KeyExpirationEventMessageListene //log.info("客户端离线进入定时任务..."); //startScheduledTask(scheduler,nDid,version); sendMessage(nDid); + + //记录装置掉线时间 + CsDeviceOnlineLogs record = onlineLogsService.findLastData(nDid); + record.setOfflineTime(LocalDateTime.now()); + onlineLogsService.updateById(record); + scheduler.shutdown(); } } diff --git a/iot-access/access-boot/src/main/java/com/njcn/access/runner/AutoAccessTimer.java b/iot-access/access-boot/src/main/java/com/njcn/access/runner/AutoAccessTimer.java index ff03c8b..9763659 100644 --- a/iot-access/access-boot/src/main/java/com/njcn/access/runner/AutoAccessTimer.java +++ b/iot-access/access-boot/src/main/java/com/njcn/access/runner/AutoAccessTimer.java @@ -29,7 +29,6 @@ import java.util.concurrent.*; @RequiredArgsConstructor public class AutoAccessTimer implements ApplicationRunner { ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1); - ExecutorService executor = Executors.newFixedThreadPool(10); private static final long AUTO_TIME = 120L; private final RedisUtil redisUtil; private final ICsEquipmentDeliveryService csEquipmentDeliveryService; @@ -43,6 +42,7 @@ public class AutoAccessTimer implements ApplicationRunner { log.info("轮询定时任务执行中!"); List list = csEquipmentDeliveryService.getOfflineDev(); if (CollUtil.isNotEmpty(list)) { + ExecutorService executor = Executors.newFixedThreadPool(10); // 将任务平均分配给10个子列表 List> subLists = new ArrayList<>(); int partitionSize = list.size() / 10;