From ac9ce3b4c2feebb6f777614287be1a00e32d0cbe Mon Sep 17 00:00:00 2001 From: djnitehawk Date: Wed, 12 Mar 2025 21:24:51 +0530 Subject: [PATCH] graceful shutdown --- src/Server/InverterService/StatusRetriever.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Server/InverterService/StatusRetriever.cs b/src/Server/InverterService/StatusRetriever.cs index d44f692..1102994 100644 --- a/src/Server/InverterService/StatusRetriever.cs +++ b/src/Server/InverterService/StatusRetriever.cs @@ -3,7 +3,13 @@ using InverterMon.Server.Persistence.Settings; namespace InverterMon.Server.InverterService; -class StatusRetriever(Database db, FelicitySolarInverter inverter, UserSettings userSettings, IConfiguration config, ILogger log) +class StatusRetriever( + Database db, + FelicitySolarInverter inverter, + UserSettings userSettings, + IConfiguration config, + ILogger log, + IHostApplicationLifetime appLife) : BackgroundService { protected override async Task ExecuteAsync(CancellationToken c) @@ -16,6 +22,8 @@ class StatusRetriever(Database db, FelicitySolarInverter inverter, UserSettings await Task.Delay(5000); } + appLife.ApplicationStopping.Register(inverter.Close); + while (!c.IsCancellationRequested) { inverter.Status.BatteryCapacity = userSettings.BatteryCapacity;