mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-08 11:05:59 +08:00
refactoring scheduled tasks
This commit is contained in:
+15
-10
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user