From c1cbec74fc80866a5016ab53e8031075c920dfe5 Mon Sep 17 00:00:00 2001 From: Artur Pietrzyk Date: Fri, 14 Jun 2024 16:55:56 +0200 Subject: [PATCH] sync intervals --- .../CoinAPI.WebSocket.Stats.Console/Program.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/data-api/csharp-ws/CoinAPI.WebSocket.Stats.Console/Program.cs b/data-api/csharp-ws/CoinAPI.WebSocket.Stats.Console/Program.cs index 66333c7b8..e863bfcdc 100644 --- a/data-api/csharp-ws/CoinAPI.WebSocket.Stats.Console/Program.cs +++ b/data-api/csharp-ws/CoinAPI.WebSocket.Stats.Console/Program.cs @@ -293,7 +293,7 @@ private async Task PrintingTaskLoopAsync(CoinApiWsClient wsClient, if (!wsClient.IsConnected) { Log.Warning("Websocket is not connected."); - await Task.Delay(1000); + await DelayToNextFullSecond(); continue; } @@ -311,7 +311,7 @@ private async Task PrintingTaskLoopAsync(CoinApiWsClient wsClient, //TimeSpan totalCpuTimePrev = process.TotalProcessorTime; - await Task.Delay(1000); + await DelayToNextFullSecond(); (TimeSpan cpuWaiting, TimeSpan cpuParsing, TimeSpan cpuHandling) cpuUsage = (wsClient.TotalWaitTime, wsClient.TotalParseTime, wsClient.TotalHandleTime); @@ -360,6 +360,15 @@ private async Task PrintingTaskLoopAsync(CoinApiWsClient wsClient, } } + + private static async Task DelayToNextFullSecond() + { + var now = DateTime.Now; + var nextFullSecond = new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second).AddSeconds(1); + var delay = nextFullSecond - now; + await Task.Delay(delay); + } + static void AppConfigureServices(IServiceCollection services, IConfiguration configuration) { // Add configuration, logging, and IDataOutput implementations