实现备份可设置

This commit is contained in:
chenxudong 2025-11-06 09:56:12 +08:00
parent fedfc12e3e
commit df64dc8ebd
2 changed files with 13 additions and 3 deletions

View File

@ -61,12 +61,13 @@ public class BackupTask {
@Resource @Resource
private BackupHandler backupHandler; private BackupHandler backupHandler;
@Scheduled(cron = "0 0 * * * ?") @Scheduled(fixedDelayString = "#{${backup.interval.mins:720} * 1000 * 60}")
public void backup() { public void backup() {
if (!isRemotePortListening(elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort())) { if (!isRemotePortListening(elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort())) {
log.info("备份环境连接失败,未备份文件"); log.info("备份环境连接失败,未备份文件");
return; return;
} }
int count = 0;
// 首先查看备份失败的文件 // 首先查看备份失败的文件
List<String> failBackFailFileIds = getFailBackFile(); List<String> failBackFailFileIds = getFailBackFile();
for (String id : failBackFailFileIds) { for (String id : failBackFailFileIds) {
@ -86,6 +87,7 @@ public class BackupTask {
.set(FileBackupLog::getDuration, endTime - startTime) .set(FileBackupLog::getDuration, endTime - startTime)
.set(FileBackupLog::getFailInfoDetail, resLog.getFailInfoDetail()) .set(FileBackupLog::getFailInfoDetail, resLog.getFailInfoDetail())
.set(FileBackupLog::isBackupSuccess, resLog.getBackupSuccess())); .set(FileBackupLog::isBackupSuccess, resLog.getBackupSuccess()));
++count;
} }
// 查找最大备份时间 // 查找最大备份时间
Date fileMaxCreateTime = getFileMaxCreateTime(); Date fileMaxCreateTime = getFileMaxCreateTime();
@ -98,11 +100,18 @@ public class BackupTask {
.gt(EdFileInfo::getCreatedTime, fileMaxCreateTime)); .gt(EdFileInfo::getCreatedTime, fileMaxCreateTime));
for (EdFileInfo edFileInfo : edFileInfos) { for (EdFileInfo edFileInfo : edFileInfos) {
try { try {
backUpFile(edFileInfo); long size = fileBackupLogMapper.selectCount(Wrappers.<FileBackupLog>lambdaQuery().eq(FileBackupLog::getFileId, edFileInfo.getId()));
if (size == 0) {
backUpFile(edFileInfo);
++count;
}
} catch (Exception e) { } catch (Exception e) {
log.warn("备份文件错误, {} ", e.getMessage(), e); log.warn("备份文件错误, {} ", e.getMessage(), e);
} }
} }
String info = StrFormatter.format("备份完成,此次成功备份 {} 个文件", count);
log.info(info);
} }
private void backUpFile(EdFileInfo edFileInfo) { private void backUpFile(EdFileInfo edFileInfo) {

View File

@ -64,4 +64,5 @@ backup.mysql.path=/workspace/mysqlbak/test
backup.mysql.script.path=/workspace/mysqlbak/back_dev.sh backup.mysql.script.path=/workspace/mysqlbak/back_dev.sh
file.enc.passwd=123456 file.enc.passwd=123456
login.enc.passwd=123456 login.enc.passwd=123456
backup.interval.mins=1440