diff --git a/EnvelopeGenerator.ServiceHost/Worker.cs b/EnvelopeGenerator.ServiceHost/Worker.cs index ebea843a..a6aa875b 100644 --- a/EnvelopeGenerator.ServiceHost/Worker.cs +++ b/EnvelopeGenerator.ServiceHost/Worker.cs @@ -6,13 +6,13 @@ public class Worker : BackgroundService { private readonly ILogger _logger; private readonly int _delayMilliseconds; - private readonly FinalizeDocumentJob _finalizeDocumentJob; + private readonly IServiceScopeFactory _scopeFactory; - public Worker(ILogger logger, IConfiguration configuration, FinalizeDocumentJob finalizeDocumentJob) + public Worker(ILogger logger, IConfiguration configuration, IServiceScopeFactory scopeFactory) { _logger = logger; _delayMilliseconds = Math.Max(1, configuration.GetValue("Worker:DelayMilliseconds", 1000)); - _finalizeDocumentJob = finalizeDocumentJob; + _scopeFactory = scopeFactory; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) @@ -24,7 +24,10 @@ public class Worker : BackgroundService _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); } - await _finalizeDocumentJob.ExecuteAsync(stoppingToken); + using var scope = _scopeFactory.CreateScope(); + var finalizeDocumentJob = scope.ServiceProvider.GetRequiredService(); + await finalizeDocumentJob.ExecuteAsync(stoppingToken); + await Task.Delay(_delayMilliseconds, stoppingToken); } }