Files
EnvelopeGenerator/EnvelopeGenerator.ServiceHost/Worker.cs

30 lines
980 B
C#

namespace EnvelopeGenerator.ServiceHost;
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
private readonly int _delayMilliseconds;
private readonly IFinalizeDocumentJobRunner _jobRunner;
public Worker(ILogger<Worker> logger, IConfiguration configuration, IFinalizeDocumentJobRunner jobRunner)
{
_logger = logger;
_delayMilliseconds = Math.Max(1, configuration.GetValue("Worker:DelayMilliseconds", 1000));
_jobRunner = jobRunner;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
if (_logger.IsEnabled(LogLevel.Information))
{
_logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
}
await _jobRunner.RunAsync(stoppingToken);
await Task.Delay(_delayMilliseconds, stoppingToken);
}
}
}