From 5fea45398f0fa88fef4008e6ec9443eef3d515d2 Mon Sep 17 00:00:00 2001
From: 杜洪波 <1074825718@qq.com>
Date: 星期四, 19 六月 2025 13:51:28 +0800
Subject: [PATCH] 系统备份(日志版,读取最后次成功的日志时间,进行增量备份)
---
.classpath | 11 -----
src/main/java/com/product/system/backup/service/SystemBackupService.java | 55 +++++++++++++++++++++------
2 files changed, 43 insertions(+), 23 deletions(-)
diff --git a/.classpath b/.classpath
index 002ad57..5e8a55f 100644
--- a/.classpath
+++ b/.classpath
@@ -6,20 +6,9 @@
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
- <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
- <attributes>
- <attribute name="maven.pomderived" value="true"/>
- </attributes>
- </classpathentry>
<classpathentry kind="src" output="target/test-classes" path="src/test/java">
<attributes>
<attribute name="optional" value="true"/>
- <attribute name="maven.pomderived" value="true"/>
- <attribute name="test" value="true"/>
- </attributes>
- </classpathentry>
- <classpathentry excluding="**" kind="src" output="target/test-classes" path="src/test/resources">
- <attributes>
<attribute name="maven.pomderived" value="true"/>
<attribute name="test" value="true"/>
</attributes>
diff --git a/src/main/java/com/product/system/backup/service/SystemBackupService.java b/src/main/java/com/product/system/backup/service/SystemBackupService.java
index c307f31..b9cb749 100644
--- a/src/main/java/com/product/system/backup/service/SystemBackupService.java
+++ b/src/main/java/com/product/system/backup/service/SystemBackupService.java
@@ -71,22 +71,15 @@
// 鑾峰彇绯荤粺鏃堕棿
Date finalTime = new Date();
Date startTime = null;
- // 鑾峰彇绯荤粺澶囦唤鍛ㄦ湡(鍒嗛挓)
- int backupCycle = Integer.valueOf(Global.getSystemConfig("SYSTEM_BACK_CYCLE", "1440"));
// 鑾峰彇绯荤粺鏈�澶у浠芥椂闂�
StringBuilder sbSql = new StringBuilder();
- sbSql.append("SELECT TIMESTAMPDIFF(MINUTE, end_time, ?) AS diff_minutes,end_time \n");
+ sbSql.append("SELECT end_time \n");
sbSql.append("FROM product_sys_backup_log \n");
sbSql.append("WHERE backup_status = 1 \n");
sbSql.append("ORDER BY end_time DESC \n");
sbSql.append("LIMIT 1 \n");
- FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {standardTimeFormat.format(finalTime)}, false);
- if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("diff_minutes"))) {
- Integer diffMinutes = fseMaxLogTime.getInteger("diff_minutes");
- if (diffMinutes < backupCycle) {
- // 灏忎簬澶囦唤鍛ㄦ湡锛屼笉澶囦唤
- return ;
- }
+ FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {}, false);
+ if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("end_time"))) {
startTime = fseMaxLogTime.getDate("end_time");
}
// 鍒濆澶囦唤鏃ュ織鏁版嵁
@@ -104,6 +97,43 @@
// 淇濆瓨鏃ュ織
baseDao.saveFieldSetEntity(fseBackLog);
}
+// public void systemBackupInit() {
+// // 鑾峰彇绯荤粺鏃堕棿
+// Date finalTime = new Date();
+// Date startTime = null;
+// // 鑾峰彇绯荤粺澶囦唤鍛ㄦ湡(鍒嗛挓)
+// int backupCycle = Integer.valueOf(Global.getSystemConfig("SYSTEM_BACK_CYCLE", "1440"));
+// // 鑾峰彇绯荤粺鏈�澶у浠芥椂闂�
+// StringBuilder sbSql = new StringBuilder();
+// sbSql.append("SELECT TIMESTAMPDIFF(MINUTE, end_time, ?) AS diff_minutes,end_time \n");
+// sbSql.append("FROM product_sys_backup_log \n");
+// sbSql.append("WHERE backup_status = 1 \n");
+// sbSql.append("ORDER BY end_time DESC \n");
+// sbSql.append("LIMIT 1 \n");
+// FieldSetEntity fseMaxLogTime = baseDao.getFieldSetEntityBySQL(sbSql.toString(), new Object[] {standardTimeFormat.format(finalTime)}, false);
+// if(fseMaxLogTime != null && !StringUtils.isEmpty(fseMaxLogTime.getString("diff_minutes"))) {
+// Integer diffMinutes = fseMaxLogTime.getInteger("diff_minutes");
+// if (diffMinutes < backupCycle) {
+// // 灏忎簬澶囦唤鍛ㄦ湡锛屼笉澶囦唤
+// return ;
+// }
+// startTime = fseMaxLogTime.getDate("end_time");
+// }
+// // 鍒濆澶囦唤鏃ュ織鏁版嵁
+// FieldSetEntity fseBackLog = new FieldSetEntity("product_sys_backup_log");
+// fseBackLog.setValue("start_time", startTime);
+// fseBackLog.setValue("end_time", finalTime);
+//
+// // 鎵ц澶囦唤
+// boolean flag = backupProcess(startTime, finalTime);
+// if (flag) {
+// fseBackLog.setValue("backup_status", 1);
+// } else {
+// fseBackLog.setValue("backup_status", 0);
+// }
+// // 淇濆瓨鏃ュ織
+// baseDao.saveFieldSetEntity(fseBackLog);
+// }
/**
@@ -274,12 +304,13 @@
} else {
log.writeInfo("銆愬浠芥暟鎹簱銆戞暟鎹簱澶囦唤澶辫触锛岄��鍑虹爜: " + exitCode, BackupLogger.ERROR_TYPE);
}
+ return true;
} catch (Exception e) {
e.printStackTrace();
log.writeInfo("銆愬浠芥暟鎹簱銆戞暟鎹簱澶囦唤澶辫触锛�" + e.getMessage(), BackupLogger.ERROR_TYPE);
+ backupFile.delete();
return false;
- }
- return true;
+ }
}
/**
--
Gitblit v1.9.2