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) {
|
private long deleteDeviceLogBatch(Date cutoffDate) {
|
||||||
long totalDeleted = 0;
|
long totalDeleted = 0;
|
||||||
int batchSize = 5000;
|
int batchSize = 1000;
|
||||||
|
int batchCount = 0;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
int deleted = deviceMapper.deleteDeviceLogBatch(cutoffDate, batchSize);
|
int deleted = deviceMapper.deleteDeviceLogBatch(cutoffDate, batchSize);
|
||||||
totalDeleted += deleted;
|
totalDeleted += deleted;
|
||||||
|
batchCount++;
|
||||||
|
|
||||||
|
if (batchCount % 10 == 0) {
|
||||||
|
log.info("设备日志已删除{}批,累计删除:{}条", batchCount, totalDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
if (deleted == 0) {
|
if (deleted == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Thread.sleep(100);
|
Thread.sleep(50);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
|
log.warn("设备日志删除任务被中断");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("设备日志删除完成,共{}批,总计删除:{}条", batchCount, totalDeleted);
|
||||||
return totalDeleted;
|
return totalDeleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long deleteEventLogBatch(Date cutoffDate) {
|
private long deleteEventLogBatch(Date cutoffDate) {
|
||||||
long totalDeleted = 0;
|
long totalDeleted = 0;
|
||||||
int batchSize = 5000;
|
int batchSize = 1000;
|
||||||
|
int batchCount = 0;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
int deleted = deviceMapper.deleteEventLogBatch(cutoffDate, batchSize);
|
int deleted = deviceMapper.deleteEventLogBatch(cutoffDate, batchSize);
|
||||||
totalDeleted += deleted;
|
totalDeleted += deleted;
|
||||||
|
batchCount++;
|
||||||
|
|
||||||
|
if (batchCount % 10 == 0) {
|
||||||
|
log.info("事件日志已删除{}批,累计删除:{}条", batchCount, totalDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
if (deleted == 0) {
|
if (deleted == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Thread.sleep(100);
|
Thread.sleep(50);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
|
log.warn("事件日志删除任务被中断");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("事件日志删除完成,共{}批,总计删除:{}条", batchCount, totalDeleted);
|
||||||
return totalDeleted;
|
return totalDeleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
private long deleteFunctionLogBatch(Date cutoffDate) {
|
private long deleteFunctionLogBatch(Date cutoffDate) {
|
||||||
long totalDeleted = 0;
|
long totalDeleted = 0;
|
||||||
int batchSize = 5000;
|
int batchSize = 1000;
|
||||||
|
int batchCount = 0;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
int deleted = deviceMapper.deleteFunctionLogBatch(cutoffDate, batchSize);
|
int deleted = deviceMapper.deleteFunctionLogBatch(cutoffDate, batchSize);
|
||||||
totalDeleted += deleted;
|
totalDeleted += deleted;
|
||||||
|
batchCount++;
|
||||||
|
|
||||||
|
if (batchCount % 10 == 0) {
|
||||||
|
log.info("告警日志已删除{}批,累计删除:{}条", batchCount, totalDeleted);
|
||||||
|
}
|
||||||
|
|
||||||
if (deleted == 0) {
|
if (deleted == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Thread.sleep(100);
|
Thread.sleep(50);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
|
log.warn("告警日志删除任务被中断");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("告警日志删除完成,共{}批,总计删除:{}条", batchCount, totalDeleted);
|
||||||
return 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 id="deviceLogList" resultType="iot.lidee.iot.domain.DeviceLog">
|
||||||
|
SELECT l1.*
|
||||||
SELECT
|
FROM iot_device_log l1
|
||||||
*
|
INNER JOIN (
|
||||||
FROM (
|
SELECT identity, MAX(create_time) AS max_time
|
||||||
SELECT *,
|
FROM iot_device_log
|
||||||
ROW_NUMBER() OVER (PARTITION BY identity ORDER BY create_time DESC) AS rn
|
WHERE serial_number = #{serialNumber}
|
||||||
FROM
|
GROUP BY identity
|
||||||
iot_device_log
|
) l2 ON l1.identity = l2.identity AND l1.create_time = l2.max_time
|
||||||
WHERE
|
WHERE l1.serial_number = #{serialNumber};
|
||||||
serial_number = #{serialNumber}
|
|
||||||
) t
|
|
||||||
WHERE rn = 1
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -976,7 +976,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<delete id="deleteEventLogBatch">
|
<delete id="deleteEventLogBatch">
|
||||||
DELETE FROM iot_event log
|
DELETE FROM iot_event_log
|
||||||
WHERE create_time < #{cutoffDate}
|
WHERE create_time < #{cutoffDate}
|
||||||
LIMIT #{batchSize}
|
LIMIT #{batchSize}
|
||||||
</delete>
|
</delete>
|
||||||
|
|||||||
Reference in New Issue
Block a user