Browse Source

增加定时清理分片的任务

gitlink
Sydonian 1 year ago
parent
commit
1a250a89e6
2 changed files with 48 additions and 0 deletions
  1. +46
    -0
      scanner/internal/tickevent/storage_gc.go
  2. +2
    -0
      scanner/main.go

+ 46
- 0
scanner/internal/tickevent/storage_gc.go View File

@@ -0,0 +1,46 @@
package tickevent

import (
"time"

"gitlink.org.cn/cloudream/common/pkgs/logger"
cdssdk "gitlink.org.cn/cloudream/common/sdks/storage"
scevt "gitlink.org.cn/cloudream/storage/common/pkgs/mq/scanner/event"
"gitlink.org.cn/cloudream/storage/scanner/internal/event"
)

type StorageGC struct {
storageIDs []cdssdk.StorageID
}

func NewStorageGC() *StorageGC {
return &StorageGC{}
}

func (e *StorageGC) Execute(ctx ExecuteContext) {
log := logger.WithType[StorageGC]("TickEvent")
log.Debugf("begin")
defer log.Debugf("end")

if len(e.storageIDs) == 0 {
// 0点开始检查
if time.Now().Hour() > 0 {
return
}

stgIDs, err := ctx.Args.DB.Storage().GetAllIDs(ctx.Args.DB.DefCtx())
if err != nil {
log.Warnf("get all storage ids: %v", err)
return
}
e.storageIDs = stgIDs
}

if len(e.storageIDs) == 0 {
return
}

ctx.Args.EventExecutor.Post(event.NewAgentShardStoreGC(scevt.NewAgentShardStoreGC(e.storageIDs[0])))
ctx.Args.EventExecutor.Post(event.NewAgentStorageGC(scevt.NewAgentStorageGC(e.storageIDs[0])))
e.storageIDs = e.storageIDs[1:]
}

+ 2
- 0
scanner/main.go View File

@@ -143,6 +143,8 @@ func startTickEvent(tickExecutor *tickevent.Executor) {

tickExecutor.Start(tickevent.NewBatchCheckAllPackage(), interval, tickevent.StartOption{RandomStartDelayMs: 60 * 1000})

tickExecutor.Start(tickevent.NewStorageGC(), interval, tickevent.StartOption{RandomStartDelayMs: 60 * 1000})

// tickExecutor.Start(tickevent.NewBatchCheckAllRepCount(), interval, tickevent.StartOption{RandomStartDelayMs: 60 * 1000})

tickExecutor.Start(tickevent.NewBatchCheckAllStorage(), interval, tickevent.StartOption{RandomStartDelayMs: 60 * 1000})


Loading…
Cancel
Save