nginx-ui/internal/cron/clear_token.go

29 lines
745 B
Go

package cron
import (
"time"
"github.com/0xJacky/Nginx-UI/query"
"github.com/go-co-op/gocron/v2"
"github.com/uozi-tech/cosy/logger"
)
// setupAuthTokenCleanupJob initializes the job to clean expired auth tokens
func setupAuthTokenCleanupJob(scheduler gocron.Scheduler) (gocron.Job, error) {
job, err := scheduler.NewJob(
gocron.DurationJob(5*time.Minute),
gocron.NewTask(func() {
logger.Debug("clean expired auth tokens")
q := query.AuthToken
_, _ = q.Where(q.ExpiredAt.Lt(time.Now().Unix())).Delete()
}),
gocron.WithSingletonMode(gocron.LimitModeWait),
gocron.JobOption(gocron.WithStartImmediately()))
if err != nil {
logger.Errorf("CleanExpiredAuthToken Err: %v\n", err)
return nil, err
}
return job, nil
}