From 5899b565c627693af1ef01e992c7f95f9931d613 Mon Sep 17 00:00:00 2001 From: Gjm <你的邮箱> Date: Wed, 13 May 2026 10:55:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(iot):=20=E4=BF=AE=E5=A4=8D=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E8=A1=A8=E5=90=8D=E9=94=99=E8=AF=AF=E5=92=8C?= =?UTF-8?q?=E6=80=A7=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修正了事件日志删除SQL中的表名从 iot_event log 到 iot_event_log - 将批量删除大小从5000调整为1000以提高性能稳定性 - 添加了批量删除过程中的进度日志记录功能 - 将删除批次间的休眠时间从100ms缩短到50ms - 增加了中断处理的日志警告信息 - 完善了删除任务完成后的统计日志输出 Signed-off-by: Gjm <你的邮箱> --- .../iot/service/impl/DeviceServiceImpl.java | 36 +++++++++++++++---- .../resources/mapper/iot/DeviceMapper.xml | 2 +- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/lidee-service/lidee-iot-service/src/main/java/iot/lidee/iot/service/impl/DeviceServiceImpl.java b/lidee-service/lidee-iot-service/src/main/java/iot/lidee/iot/service/impl/DeviceServiceImpl.java index b9e6b97..0502e33 100644 --- a/lidee-service/lidee-iot-service/src/main/java/iot/lidee/iot/service/impl/DeviceServiceImpl.java +++ b/lidee-service/lidee-iot-service/src/main/java/iot/lidee/iot/service/impl/DeviceServiceImpl.java @@ -1876,70 +1876,94 @@ public class DeviceServiceImpl implements IDeviceService { private long deleteDeviceLogBatch(Date cutoffDate) { long totalDeleted = 0; - int batchSize = 5000; + int batchSize = 1000; + int batchCount = 0; while (true) { int deleted = deviceMapper.deleteDeviceLogBatch(cutoffDate, batchSize); totalDeleted += deleted; + batchCount++; + + if (batchCount % 10 == 0) { + log.info("设备日志已删除{}批,累计删除:{}条", batchCount, totalDeleted); + } if (deleted == 0) { break; } try { - Thread.sleep(100); + Thread.sleep(50); } catch (InterruptedException e) { Thread.currentThread().interrupt(); + log.warn("设备日志删除任务被中断"); break; } } + log.info("设备日志删除完成,共{}批,总计删除:{}条", batchCount, totalDeleted); return totalDeleted; } private long deleteEventLogBatch(Date cutoffDate) { long totalDeleted = 0; - int batchSize = 5000; + int batchSize = 1000; + int batchCount = 0; while (true) { int deleted = deviceMapper.deleteEventLogBatch(cutoffDate, batchSize); totalDeleted += deleted; + batchCount++; + + if (batchCount % 10 == 0) { + log.info("事件日志已删除{}批,累计删除:{}条", batchCount, totalDeleted); + } if (deleted == 0) { break; } try { - Thread.sleep(100); + Thread.sleep(50); } catch (InterruptedException e) { Thread.currentThread().interrupt(); + log.warn("事件日志删除任务被中断"); break; } } + log.info("事件日志删除完成,共{}批,总计删除:{}条", batchCount, totalDeleted); return totalDeleted; } private long deleteFunctionLogBatch(Date cutoffDate) { long totalDeleted = 0; - int batchSize = 5000; + int batchSize = 1000; + int batchCount = 0; while (true) { int deleted = deviceMapper.deleteFunctionLogBatch(cutoffDate, batchSize); totalDeleted += deleted; + batchCount++; + + if (batchCount % 10 == 0) { + log.info("告警日志已删除{}批,累计删除:{}条", batchCount, totalDeleted); + } if (deleted == 0) { break; } try { - Thread.sleep(100); + Thread.sleep(50); } catch (InterruptedException e) { Thread.currentThread().interrupt(); + log.warn("告警日志删除任务被中断"); break; } } + log.info("告警日志删除完成,共{}批,总计删除:{}条", batchCount, totalDeleted); return totalDeleted; } } diff --git a/lidee-service/lidee-iot-service/src/main/resources/mapper/iot/DeviceMapper.xml b/lidee-service/lidee-iot-service/src/main/resources/mapper/iot/DeviceMapper.xml index b826b63..f345dc8 100644 --- a/lidee-service/lidee-iot-service/src/main/resources/mapper/iot/DeviceMapper.xml +++ b/lidee-service/lidee-iot-service/src/main/resources/mapper/iot/DeviceMapper.xml @@ -976,7 +976,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - DELETE FROM iot_event log + DELETE FROM iot_event_log WHERE create_time < #{cutoffDate} LIMIT #{batchSize}