refactoring scheduled tasks

This commit is contained in:
withchao
2024-12-19 18:53:49 +08:00
parent 1949d6c756
commit 86d58253c9
8 changed files with 94 additions and 15 deletions
+15 -10
View File
@@ -295,18 +295,23 @@ func (t *thirdServer) DeleteOutdatedData(ctx context.Context, req *third.DeleteO
if err != nil {
return nil, err
}
if len(models) > 0 {
names := datautil.Batch(func(o *model.Object) string {
return o.Name
}, models)
if err := t.s3dataBase.DeleteSpecifiedData(ctx, engine, names); err != nil {
return nil, errs.Wrap(err)
}
if err := t.s3dataBase.DelS3Key(ctx, engine, names...); err != nil {
keyCount := make(map[string]int)
for _, obj := range models {
keyCount[obj.Key]++
}
for _, obj := range models {
count, err := t.s3dataBase.GetKeyCount(ctx, engine, obj.Key)
if err != nil {
return nil, err
}
for _, object := range models {
if err := t.s3.DeleteObject(ctx, object.Key); err != nil {
if err := t.s3dataBase.DeleteSpecifiedData(ctx, engine, []string{obj.Name}); err != nil {
return nil, errs.Wrap(err)
}
if err := t.s3dataBase.DelS3Key(ctx, engine, obj.Name); err != nil {
return nil, err
}
if int(count) <= keyCount[obj.Key] {
if err := t.s3.DeleteObject(ctx, obj.Key); err != nil {
return nil, err
}
}