Skip to content

Commit a070dc6

Browse files
committed
fix: continue delete file when delete file that does not exist
1 parent e10dfec commit a070dc6

File tree

1 file changed

+25
-4
lines changed

1 file changed

+25
-4
lines changed

plugin/mp4/exception.go

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,12 +112,25 @@ func (p *DeleteRecordTask) deleteOldestFile() {
112112
p.Info("deleteOldestFile", "ready to delete oldestfile,ID", record.ID, "create time", record.EndTime, "filepath", record.FilePath)
113113
err = os.Remove(record.FilePath)
114114
if err != nil {
115-
p.Error("deleteOldestFile", "delete file from disk error", err)
116-
continue
115+
// 检查是否为文件不存在的错误
116+
if os.IsNotExist(err) {
117+
// 文件不存在,记录日志但视为删除成功
118+
p.Warn("deleteOldestFile", "file does not exist, continuing with database deletion", record.FilePath)
119+
// 继续删除数据库记录
120+
err = p.DB.Delete(&record).Error
121+
if err != nil {
122+
p.Error("deleteOldestFile", "delete record from db error", err)
123+
}
124+
} else {
125+
// 其他错误,记录并跳过此记录
126+
p.Error("deleteOldestFile", "delete file from disk error", err)
127+
continue
128+
}
117129
} else {
130+
// 文件删除成功,继续删除数据库记录
118131
err = p.DB.Delete(&record).Error
119132
if err != nil {
120-
p.Error("deleteOldestFile", "delete record from disk error", err)
133+
p.Error("deleteOldestFile", "delete record from db error", err)
121134
}
122135
}
123136
}
@@ -158,8 +171,16 @@ func (t *DeleteRecordTask) Tick(any) {
158171
t.Info("RecordFileExpireDays is set to auto delete oldestfile", "ID", record.ID, "create time", record.EndTime, "filepath", record.FilePath)
159172
err = os.Remove(record.FilePath)
160173
if err != nil {
161-
t.Error("RecordFileExpireDays set to auto delete oldestfile", "delete file from disk error", err)
174+
// 检查是否为文件不存在的错误
175+
if os.IsNotExist(err) {
176+
// 文件不存在,记录日志但视为删除成功
177+
t.Warn("RecordFileExpireDays set to auto delete oldestfile", "file does not exist, continuing with database deletion", record.FilePath)
178+
} else {
179+
// 其他错误,记录但继续处理
180+
t.Error("RecordFileExpireDays set to auto delete oldestfile", "delete file from disk error", err)
181+
}
162182
}
183+
// 无论文件是否存在,都删除数据库记录
163184
err = t.DB.Delete(&record).Error
164185
if err != nil {
165186
t.Error("RecordFileExpireDays set to auto delete oldestfile", "delete record from db error", err)

0 commit comments

Comments
 (0)