|
123456789101112131415161718192021222324252627282930313233343536 |
- package task
-
- import (
- "github.com/samber/lo"
- "gitlink.org.cn/cloudream/common/utils/logger"
- mysql "gitlink.org.cn/cloudream/db/sql"
- )
-
- type CheckObjectTask struct {
- ObjectIDs []int
- }
-
- func NewCheckObjectTask(objIDs []int) CheckObjectTask {
- return CheckObjectTask{
- ObjectIDs: objIDs,
- }
- }
-
- func (t *CheckObjectTask) TryMerge(other Task) bool {
- task, ok := other.(*CheckObjectTask)
- if !ok {
- return false
- }
-
- t.ObjectIDs = lo.Union(t.ObjectIDs, task.ObjectIDs)
- return true
- }
-
- func (t *CheckObjectTask) Execute(execCtx *ExecuteContext, execOpts ExecuteOption) {
- for _, objID := range t.ObjectIDs {
- err := mysql.Object.DeleteUnused(execCtx.DB.SQLCtx(), objID)
- if err != nil {
- logger.WithField("ObjectID", objID).Warnf("delete unused object failed, err: %s", err.Error())
- }
- }
- }
|