30 lines
980 B
C#
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);
|
|
}
|
|
}
|
|
}
|