From 8fdcf10cae374ecfaed434e89f906b65d6f4292c Mon Sep 17 00:00:00 2001 From: Sylvie Crowe <107814465+oneirocosm@users.noreply.github.com> Date: Fri, 19 Apr 2024 18:26:31 -0700 Subject: [PATCH] fix: ignore computer sleep for telemetry clock (#577) * fix: ignore computer sleep for telemetry clock This uses unix time with regular integer comparisons to prevent the telemetry clock from needing to wait for 8 hours of the program running. Now, it only needs to wait 8 real-time hours instead. * drop telemetry time to 4 hours, tick every 10 minutes --- wavesrv/cmd/main-server.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/wavesrv/cmd/main-server.go b/wavesrv/cmd/main-server.go index 8c973932..ab3669d4 100644 --- a/wavesrv/cmd/main-server.go +++ b/wavesrv/cmd/main-server.go @@ -67,8 +67,8 @@ const WSStateReconnectTime = 30 * time.Second const WSStatePacketChSize = 20 const InitialTelemetryWait = 30 * time.Second -const TelemetryTick = 30 * time.Minute -const TelemetryInterval = 8 * time.Hour +const TelemetryTick = 10 * time.Minute +const TelemetryInterval = 4 * time.Hour const MaxWriteFileMemSize = 20 * (1024 * 1024) // 20M @@ -930,12 +930,11 @@ func checkNewReleaseWrapper() { } func telemetryLoop() { - var lastSent time.Time + var nextSend int64 time.Sleep(InitialTelemetryWait) for { - dur := time.Since(lastSent) - if lastSent.IsZero() || dur >= TelemetryInterval { - lastSent = time.Now() + if time.Now().Unix() > nextSend { + nextSend = time.Now().Add(TelemetryInterval).Unix() sendTelemetryWrapper() checkNewReleaseWrapper() }