clear_token.go 745 B

1234567891011121314151617181920212223242526272829
  1. package cron
  2. import (
  3. "time"
  4. "github.com/0xJacky/Nginx-UI/query"
  5. "github.com/go-co-op/gocron/v2"
  6. "github.com/uozi-tech/cosy/logger"
  7. )
  8. // setupAuthTokenCleanupJob initializes the job to clean expired auth tokens
  9. func setupAuthTokenCleanupJob(scheduler gocron.Scheduler) (gocron.Job, error) {
  10. job, err := scheduler.NewJob(
  11. gocron.DurationJob(5*time.Minute),
  12. gocron.NewTask(func() {
  13. logger.Debug("clean expired auth tokens")
  14. q := query.AuthToken
  15. _, _ = q.Where(q.ExpiredAt.Lt(time.Now().Unix())).Delete()
  16. }),
  17. gocron.WithSingletonMode(gocron.LimitModeWait),
  18. gocron.JobOption(gocron.WithStartImmediately()))
  19. if err != nil {
  20. logger.Errorf("CleanExpiredAuthToken Err: %v\n", err)
  21. return nil, err
  22. }
  23. return job, nil
  24. }