cron.go 979 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. package cron
  2. import (
  3. "github.com/go-co-op/gocron/v2"
  4. "github.com/uozi-tech/cosy/logger"
  5. )
  6. // Global scheduler instance
  7. var s gocron.Scheduler
  8. func init() {
  9. var err error
  10. s, err = gocron.NewScheduler()
  11. if err != nil {
  12. logger.Fatalf("Init Scheduler: %v\n", err)
  13. }
  14. }
  15. // InitCronJobs initializes and starts all cron jobs
  16. func InitCronJobs() {
  17. // Initialize auto cert job
  18. _, err := setupAutoCertJob(s)
  19. if err != nil {
  20. logger.Fatalf("AutoCert Err: %v\n", err)
  21. }
  22. // Initialize certificate expiration check job
  23. _, err = setupCertExpiredJob(s)
  24. if err != nil {
  25. logger.Fatalf("CertExpired Err: %v\n", err)
  26. }
  27. // Start logrotate job
  28. setupLogrotateJob(s)
  29. // Initialize auth token cleanup job
  30. _, err = setupAuthTokenCleanupJob(s)
  31. if err != nil {
  32. logger.Fatalf("CleanExpiredAuthToken Err: %v\n", err)
  33. }
  34. // Start the scheduler
  35. s.Start()
  36. }
  37. // RestartLogrotate is a public API to restart the logrotate job
  38. func RestartLogrotate() {
  39. restartLogrotateJob(s)
  40. }