Compare commits
2 Commits
e116c95d57
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f9538ffc9b | ||
|
|
5899b565c6 |
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,18 +73,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
|
||||
|
||||
<select id="deviceLogList" resultType="iot.lidee.iot.domain.DeviceLog">
|
||||
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT *,
|
||||
ROW_NUMBER() OVER (PARTITION BY identity ORDER BY create_time DESC) AS rn
|
||||
FROM
|
||||
iot_device_log
|
||||
WHERE
|
||||
serial_number = #{serialNumber}
|
||||
) t
|
||||
WHERE rn = 1
|
||||
SELECT l1.*
|
||||
FROM iot_device_log l1
|
||||
INNER JOIN (
|
||||
SELECT identity, MAX(create_time) AS max_time
|
||||
FROM iot_device_log
|
||||
WHERE serial_number = #{serialNumber}
|
||||
GROUP BY identity
|
||||
) l2 ON l1.identity = l2.identity AND l1.create_time = l2.max_time
|
||||
WHERE l1.serial_number = #{serialNumber};
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@@ -976,7 +976,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
</delete>
|
||||
|
||||
<delete id="deleteEventLogBatch">
|
||||
DELETE FROM iot_event log
|
||||
DELETE FROM iot_event_log
|
||||
WHERE create_time < #{cutoffDate}
|
||||
LIMIT #{batchSize}
|
||||
</delete>
|
||||
|
||||
Reference in New Issue
Block a user