auto_cert.go 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package cron
  2. import (
  3. "time"
  4. "github.com/0xJacky/Nginx-UI/internal/cert"
  5. "github.com/go-co-op/gocron/v2"
  6. "github.com/uozi-tech/cosy/logger"
  7. )
  8. // setupAutoCertJob initializes the automatic certificate renewal job
  9. func setupAutoCertJob(scheduler gocron.Scheduler) (gocron.Job, error) {
  10. job, err := scheduler.NewJob(gocron.DurationJob(30*time.Minute),
  11. gocron.NewTask(cert.AutoCert),
  12. gocron.WithSingletonMode(gocron.LimitModeWait),
  13. gocron.JobOption(gocron.WithStartImmediately()))
  14. if err != nil {
  15. logger.Errorf("AutoCert Job: Err: %v\n", err)
  16. return nil, err
  17. }
  18. return job, nil
  19. }
  20. // setupCertExpiredJob initializes the certificate expiration check job
  21. func setupCertExpiredJob(scheduler gocron.Scheduler) (gocron.Job, error) {
  22. job, err := scheduler.NewJob(gocron.DurationJob(6*time.Hour),
  23. gocron.NewTask(cert.CertExpiredNotify),
  24. gocron.WithSingletonMode(gocron.LimitModeWait),
  25. gocron.JobOption(gocron.WithStartImmediately()))
  26. if err != nil {
  27. logger.Errorf("CertExpired Job: Err: %v\n", err)
  28. return nil, err
  29. }
  30. return job, nil
  31. }