Files
lux/EgwCoreLib.Lux.Data/Services/StatsCollectService.cs
T
2025-12-17 17:41:34 +01:00

60 lines
1.7 KiB
C#

using EgwCoreLib.Lux.Data.Services;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using System;
using System.Threading;
using System.Threading.Tasks;
namespace EgwCoreLib.Lux.Data.Services
{
public class StatsCollectService : BackgroundService
{
#region Public Constructors
/// <summary>
/// Init classe con il servizio di gestione RUID
/// </summary>
/// <param name="crService"></param>
public StatsCollectService(IConfiguration config, CalcRuidService crService)
{
_config = config;
try
{
clearProcessed = _config.GetValue<bool>("ServerConf:CleanupProcessed");
refreshPeriod = _config.GetValue<int>("ServerConf:RefreshPeriodMinutes");
}
catch
{
refreshPeriod = 60;
}
_calcRuidService = crService;
}
#endregion Public Constructors
private bool clearProcessed = false;
#region Protected Methods
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
await _calcRuidService.ExportStatsToDbAsync(clearProcessed);
// attesa tra le esecuzioni
await Task.Delay(TimeSpan.FromMinutes(refreshPeriod), stoppingToken);
}
}
#endregion Protected Methods
#region Private Fields
private readonly CalcRuidService _calcRuidService;
private IConfiguration _config;
private int refreshPeriod = 10;
#endregion Private Fields
}
}