add taskVacuum
This commit is contained in:
parent
30355785bc
commit
f058facc32
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
|
Reference in New Issue