优化代码

This commit is contained in:
chenxudong 2025-11-03 16:58:05 +08:00
parent c76d5c8c78
commit fedfc12e3e
1 changed files with 33 additions and 25 deletions

View File

@ -97,35 +97,43 @@ public class BackupTask {
.eq(EdFileInfo::getAllDeleted, false) .eq(EdFileInfo::getAllDeleted, false)
.gt(EdFileInfo::getCreatedTime, fileMaxCreateTime)); .gt(EdFileInfo::getCreatedTime, fileMaxCreateTime));
for (EdFileInfo edFileInfo : edFileInfos) { for (EdFileInfo edFileInfo : edFileInfos) {
long count = fileBackupLogMapper.selectCount(Wrappers.<FileBackupLog>lambdaQuery().eq(FileBackupLog::getFileId, edFileInfo.getId())); try {
if (count > 0) { backUpFile(edFileInfo);
continue; } catch (Exception e) {
log.warn("备份文件错误, {} ", e.getMessage(), e);
} }
UserLoginInfo userLoginInfo = new UserLoginInfo();
userLoginInfo.setUserId(edFileInfo.getCreatedBy());
UserThreadLocal.set(userLoginInfo);
String fileSysPath = commonService.getFileSysPath(edFileInfo.getId());
UserThreadLocal.remove();
long startTime = System.currentTimeMillis();
BackupFileResLog resLog = backupHandler.backupFiles(fileSysPath);
long endTime = System.currentTimeMillis();
FileBackupLog backupLog = new FileBackupLog()
.setId(EleIdCreator.createSnowflakeId())
.setFileId(edFileInfo.getId())
.setFileCode(edFileInfo.getFileCode())
.setBackupSuccess(resLog.getBackupSuccess())
.setStartTime(startTime)
.setEndTime(endTime)
.setDuration(endTime - startTime)
.setFailInfoDetail(resLog.getFailInfoDetail())
.setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime())
.setFileName(edFileInfo.getFileName() + "." + edFileInfo.getFileType())
.setFileCreateTime(edFileInfo.getCreatedTime())
.setSource(FileBackupSource.SYS_BACKUP.code);
fileBackupLogMapper.insert(backupLog);
} }
} }
private void backUpFile(EdFileInfo edFileInfo) {
long count = fileBackupLogMapper.selectCount(Wrappers.<FileBackupLog>lambdaQuery().eq(FileBackupLog::getFileId, edFileInfo.getId()));
if (count > 0) {
return;
}
UserLoginInfo userLoginInfo = new UserLoginInfo();
userLoginInfo.setUserId(edFileInfo.getCreatedBy());
UserThreadLocal.set(userLoginInfo);
String fileSysPath = commonService.getFileSysPath(edFileInfo.getId());
UserThreadLocal.remove();
long startTime = System.currentTimeMillis();
BackupFileResLog resLog = backupHandler.backupFiles(fileSysPath);
long endTime = System.currentTimeMillis();
FileBackupLog backupLog = new FileBackupLog()
.setId(EleIdCreator.createSnowflakeId())
.setFileId(edFileInfo.getId())
.setFileCode(edFileInfo.getFileCode())
.setBackupSuccess(resLog.getBackupSuccess())
.setStartTime(startTime)
.setEndTime(endTime)
.setDuration(endTime - startTime)
.setFailInfoDetail(resLog.getFailInfoDetail())
.setFileTime(FileUtil.lastModifiedTime(fileSysPath).getTime())
.setFileName(edFileInfo.getFileName() + "." + edFileInfo.getFileType())
.setFileCreateTime(edFileInfo.getCreatedTime())
.setSource(FileBackupSource.SYS_BACKUP.code);
fileBackupLogMapper.insert(backupLog);
}
private Date getFileMaxCreateTime() { private Date getFileMaxCreateTime() {
List<FileBackupLog> fileBackupLogs = fileBackupLogMapper.selectList(Wrappers.<FileBackupLog>lambdaQuery() List<FileBackupLog> fileBackupLogs = fileBackupLogMapper.selectList(Wrappers.<FileBackupLog>lambdaQuery()
.eq(FileBackupLog::getSource, FileBackupSource.SYS_BACKUP.code) .eq(FileBackupLog::getSource, FileBackupSource.SYS_BACKUP.code)