diff --git a/backend/app/service/monitor.go b/backend/app/service/monitor.go index 8f907a71f..0d73e48ef 100644 --- a/backend/app/service/monitor.go +++ b/backend/app/service/monitor.go @@ -201,16 +201,19 @@ func StartMonitor(removeBefore bool, interval string) error { service := NewIMonitorService() ctx, cancel := context.WithCancel(context.Background()) monitorCancel = cancel - monitorID, err := global.Cron.AddJob(fmt.Sprintf("@every %sm", interval), service) - if err != nil { - return err - } - + now := time.Now() + nextMinute := now.Truncate(time.Minute).Add(time.Minute) + time.AfterFunc(time.Until(nextMinute), func() { + monitorID, err := global.Cron.AddJob(fmt.Sprintf("@every %sm", interval), service) + if err != nil { + return + } + global.MonitorCronID = monitorID + }) service.Run() go service.saveIODataToDB(ctx, float64(intervalItem)) go service.saveNetDataToDB(ctx, float64(intervalItem)) - global.MonitorCronID = monitorID return nil }