add taskVacuum

This commit is contained in:
Dawid Wysokiński 2021-04-25 18:46:31 +02:00
parent 30355785bc
commit f058facc32
2 changed files with 38 additions and 0 deletions

31
cron/tasks/task_vacuum.go Normal file
View File

@ -0,0 +1,31 @@
package tasks
import (
"context"
"github.com/pkg/errors"
"github.com/tribalwarshelp/shared/models"
"github.com/tribalwarshelp/cron/cron/queue"
)
type taskVacuum struct {
*task
}
func (t *taskVacuum) execute() error {
var servers []*models.Server
err := t.db.
Model(&servers).
Select()
if err != nil {
err = errors.Wrap(err, "taskVacuum.execute")
log.Errorln(err)
return err
}
log.Infof("Start database vacuuming...")
for _, server := range servers {
s := server
t.queue.Add(queue.MainQueue, Get(TaskNameVacuumServerDB).WithArgs(context.Background(), s))
}
return nil
}

View File

@ -13,6 +13,8 @@ const (
TaskNameLoadVersionsAndUpdateServerData = "loadVersions"
TaskNameLoadServersAndUpdateData = "loadServers"
TaskNameUpdateServerData = "updateServerData"
TaskNameVacuum = "vacuum"
TaskNameVacuumServerDB = "vacuumServerDB"
defaultRetryLimit = 3
)
@ -47,6 +49,11 @@ func RegisterTasks(cfg *Config) error {
RetryLimit: defaultRetryLimit,
Handler: (&taskUpdateServerData{t}).execute,
})
taskq.RegisterTask(&taskq.TaskOptions{
Name: TaskNameVacuum,
RetryLimit: defaultRetryLimit,
Handler: (&taskVacuum{t}).execute,
})
return nil
}