Files
open-im-server/internal/tools/s3.go
T

36 lines
1.3 KiB
Go
Raw Normal View History

2024-12-18 17:41:49 +08:00
package tools
import (
"fmt"
"github.com/openimsdk/protocol/third"
"github.com/openimsdk/tools/log"
"github.com/openimsdk/tools/mcontext"
"os"
"time"
)
func (c *cronServer) clearS3() {
start := time.Now()
executeNum := 10
// number of pagination. if need modify, need update value in third.DeleteOutdatedData
pageShowNumber := 500
deleteTime := start.Add(-time.Hour * 24 * time.Duration(c.config.CronTask.FileExpireTime))
2024-12-19 11:28:49 +08:00
operationID := fmt.Sprintf("cron_s3_%d_%d", os.Getpid(), deleteTime.UnixMilli())
2024-12-18 17:41:49 +08:00
ctx := mcontext.SetOperationID(c.ctx, operationID)
log.ZDebug(ctx, "deleteoutDatedData", "deletetime", deleteTime, "timestamp", deleteTime.UnixMilli())
2024-12-19 11:28:49 +08:00
var count int
2024-12-18 17:41:49 +08:00
for i := 1; i <= executeNum; i++ {
ctx := mcontext.SetOperationID(c.ctx, fmt.Sprintf("%s_%d", operationID, i))
2024-12-19 11:28:49 +08:00
resp, err := c.thirdClient.DeleteOutdatedData(ctx, &third.DeleteOutdatedDataReq{ExpireTime: deleteTime.UnixMilli(), ObjectGroup: c.config.CronTask.DeleteObjectType, Limit: int32(pageShowNumber)})
2024-12-18 17:41:49 +08:00
if err != nil {
2024-12-19 11:28:49 +08:00
log.ZError(ctx, "cron deleteoutDatedData failed", err)
2024-12-18 17:41:49 +08:00
return
}
2024-12-19 11:28:49 +08:00
count += int(resp.Count)
2024-12-18 17:41:49 +08:00
if resp.Count < int32(pageShowNumber) {
break
}
}
2024-12-19 11:28:49 +08:00
log.ZDebug(ctx, "cron deleteoutDatedData success", "deltime", deleteTime, "cont", time.Since(start), "count", count)
2024-12-18 17:41:49 +08:00
}