Heartbeat before each performance message

Updated readme
This commit is contained in:
2025-04-24 17:21:38 -07:00
parent 6eb36f44c5
commit 8311e26759
5 changed files with 206 additions and 53 deletions

View File

@ -8,7 +8,6 @@ namespace Gatus.To.MonA;
public partial class Worker : BackgroundService {
private bool? _First;
private readonly bool _IsWindowsService;
private readonly ILogger<Worker> _Logger;
private readonly AppSettings _AppSettings;
@ -20,7 +19,6 @@ public partial class Worker : BackgroundService {
_HttpClientFactory = httpClientFactory;
logger.LogInformation(string.Join(Environment.NewLine, collection));
try { logger.LogInformation("<{folder}>", Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)); } catch (Exception) { }
_First = null;
_IsWindowsService = collection.Contains(nameof(WindowsServiceLifetime));
}
@ -42,23 +40,20 @@ public partial class Worker : BackgroundService {
}
}
while (_IsWindowsService && !cancellationToken.IsCancellationRequested) {
BodyInner(cancellationToken);
await Task.Delay(_AppSettings.GatusToMonaConfiguration.MillisecondsDelay, cancellationToken);
try {
BodyInner(cancellationToken);
await Task.Delay(_AppSettings.GatusToMonaConfiguration.MillisecondsDelay, cancellationToken);
} catch (Exception ex) { _Logger.LogError(ex, "Unexpected Error!"); }
}
}
private void BodyInner(CancellationToken cancellationToken) {
_Logger.LogInformation("A) Next execute will be at {date}", DateTime.Now.AddMilliseconds(_AppSettings.GatusToMonaConfiguration.MillisecondsDelay).ToString("yyyy-MM-dd hh:mm:ss.fff tt"));
if (_First is null || _First.Value) {
_First = false;
if (_AppSettings.GatusToMonaConfiguration.Helper == nameof(Helpers.HelperGatusToMona))
Helpers.HelperGatusToMona.Heartbeat(_AppSettings, _HttpClientFactory, _Logger, Infineon.Monitoring.MonA.State.Up, cancellationToken);
}
if (!Directory.Exists(_AppSettings.GatusToMonaConfiguration.Directory))
_ = Directory.CreateDirectory(_AppSettings.GatusToMonaConfiguration.Directory);
else {
_ = _AppSettings.GatusToMonaConfiguration.Helper switch {
nameof(Helpers.HelperGatusToMona) => Helpers.HelperGatusToMona.UpdateCount(_AppSettings, _Logger, cancellationToken),
nameof(Helpers.HelperGatusToMona) => Helpers.HelperGatusToMona.UpdateCount(_AppSettings, _HttpClientFactory, _Logger, cancellationToken),
_ => throw new NotSupportedException()
};
}