mirror of
https://github.com/Rain-kl/OpenFlare.git
synced 2026-10-04 15:06:37 +08:00
44 lines
889 B
Go
44 lines
889 B
Go
package job
|
|
|
|
import (
|
|
"log/slog"
|
|
"openflare/common"
|
|
"openflare/service"
|
|
"sync"
|
|
"time"
|
|
)
|
|
|
|
var lastUptimeKumaSyncTime time.Time
|
|
var uptimeKumaSyncMutex sync.Mutex
|
|
|
|
type UptimeKumaSyncJob struct{}
|
|
|
|
func (j *UptimeKumaSyncJob) Run() {
|
|
if !common.UptimeKumaEnabled {
|
|
return
|
|
}
|
|
|
|
interval := common.UptimeKumaSyncInterval
|
|
if interval <= 0 {
|
|
interval = 5
|
|
}
|
|
|
|
if time.Since(lastUptimeKumaSyncTime) < time.Duration(interval)*time.Minute {
|
|
return
|
|
}
|
|
|
|
if !uptimeKumaSyncMutex.TryLock() {
|
|
slog.Warn("Uptime Kuma sync job is already running, skipping this scheduled run")
|
|
return
|
|
}
|
|
defer uptimeKumaSyncMutex.Unlock()
|
|
|
|
slog.Info("Starting scheduled Uptime Kuma sync")
|
|
if err := service.SyncToUptimeKuma(); err != nil {
|
|
slog.Error("Uptime Kuma sync failed", "error", err)
|
|
} else {
|
|
lastUptimeKumaSyncTime = time.Now()
|
|
slog.Info("Uptime Kuma sync completed successfully")
|
|
}
|
|
}
|