From c5ac97682e3b4ca748541ace97cb37a2295bd81e Mon Sep 17 00:00:00 2001
From: wlzboy <66905212@qq.com>
Date: 星期四, 19 三月 2026 22:46:29 +0800
Subject: [PATCH] feat: 增加GPS清理后台任务
---
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanVehicleGpsTask.java | 34 ++++++++++++++++++++++++++++++----
1 files changed, 30 insertions(+), 4 deletions(-)
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanVehicleGpsTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanVehicleGpsTask.java
index f177d1d..e089849 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanVehicleGpsTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/CleanVehicleGpsTask.java
@@ -13,17 +13,43 @@
public class CleanVehicleGpsTask {
private static final Logger log = LoggerFactory.getLogger(CleanVehicleGpsTask.class);
+ /** 姣忔壒鍒犻櫎鏁伴噺 */
+ private static final int BATCH_SIZE = 10000;
+ /** 姣忔壒闂撮殧鏃堕棿锛堟绉掞級锛岄伩鍏嶈繛缁垹闄ゅ鏁版嵁搴撳帇鍔涜繃澶� */
+ private static final long BATCH_INTERVAL_MS = 500;
+
@Autowired
private IVehicleGpsService vehicleGpsService;
/**
- * 娓呯悊杞﹁締GPS鍘嗗彶鏁版嵁
+ * 娓呯悊杞﹁締GPS鍘嗗彶鏁版嵁锛堜繚鐣欐渶杩�2涓湀锛屽垎鎵瑰垹闄わ級
*/
public void cleanVehicleGpsData() {
try {
-// log.info("寮�濮嬫竻鐞嗚溅杈咷PS鍘嗗彶鏁版嵁");
- int count = vehicleGpsService.deleteVehicleGpsBeforeDate();
-// log.info("娓呯悊杞﹁締GPS鍘嗗彶鏁版嵁瀹屾垚锛屽叡娓呯悊{}鏉¤褰�", count);
+ log.info("寮�濮嬫竻鐞嗚溅杈咷PS鍘嗗彶鏁版嵁锛堜繚鐣欐渶杩�2涓湀锛屾瘡鎵� {} 鏉★級", BATCH_SIZE);
+ int totalCount = 0;
+ int batchCount;
+ int round = 0;
+ do {
+ batchCount = vehicleGpsService.deleteVehicleGpsBeforeDateBatch(BATCH_SIZE);
+ totalCount += batchCount;
+ round++;
+ log.info("绗� {} 鎵规竻鐞嗗畬鎴愶紝鏈壒鍒犻櫎 {} 鏉★紝宸插垹闄ゅ悎璁� {} 鏉�", round, batchCount, totalCount);
+ if (batchCount == BATCH_SIZE) {
+ // 杩樻湁鏁版嵁锛岀◢浣滀紤鐪犲啀缁х画
+ Thread.sleep(BATCH_INTERVAL_MS);
+ }
+ } while (batchCount == BATCH_SIZE);
+
+ log.info("娓呯悊杞﹁締GPS鍘嗗彶鏁版嵁瀹屾垚锛屽叡 {} 鎵癸紝鍒犻櫎 {} 鏉¤褰�", round, totalCount);
+
+ if (totalCount > 0) {
+ log.info("寮�濮嬫墽琛� OPTIMIZE TABLE锛屽洖鏀剁鐩樼┖闂达紙姝ゆ搷浣滆�楁椂杈冮暱锛岃鍕夸腑鏂級");
+ vehicleGpsService.optimizeVehicleGpsTable();
+ log.info("OPTIMIZE TABLE 鎵ц瀹屾垚");
+ } else {
+ log.info("鏈鏃犲彲娓呯悊鐨勮褰曪紝璺宠繃 OPTIMIZE TABLE");
+ }
} catch (Exception e) {
log.error("娓呯悊杞﹁締GPS鍘嗗彶鏁版嵁寮傚父", e);
}
--
Gitblit v1.9.1