mirror of
https://github.com/0xJacky/nginx-ui.git
synced 2025-05-11 02:15:48 +02:00
49 lines
979 B
Go
49 lines
979 B
Go
package cron
|
|
|
|
import (
|
|
"github.com/go-co-op/gocron/v2"
|
|
"github.com/uozi-tech/cosy/logger"
|
|
)
|
|
|
|
// Global scheduler instance
|
|
var s gocron.Scheduler
|
|
|
|
func init() {
|
|
var err error
|
|
s, err = gocron.NewScheduler()
|
|
if err != nil {
|
|
logger.Fatalf("Init Scheduler: %v\n", err)
|
|
}
|
|
}
|
|
|
|
// InitCronJobs initializes and starts all cron jobs
|
|
func InitCronJobs() {
|
|
// Initialize auto cert job
|
|
_, err := setupAutoCertJob(s)
|
|
if err != nil {
|
|
logger.Fatalf("AutoCert Err: %v\n", err)
|
|
}
|
|
|
|
// Initialize certificate expiration check job
|
|
_, err = setupCertExpiredJob(s)
|
|
if err != nil {
|
|
logger.Fatalf("CertExpired Err: %v\n", err)
|
|
}
|
|
|
|
// Start logrotate job
|
|
setupLogrotateJob(s)
|
|
|
|
// Initialize auth token cleanup job
|
|
_, err = setupAuthTokenCleanupJob(s)
|
|
if err != nil {
|
|
logger.Fatalf("CleanExpiredAuthToken Err: %v\n", err)
|
|
}
|
|
|
|
// Start the scheduler
|
|
s.Start()
|
|
}
|
|
|
|
// RestartLogrotate is a public API to restart the logrotate job
|
|
func RestartLogrotate() {
|
|
restartLogrotateJob(s)
|
|
}
|