using EnvelopeGenerator.Finalizer.Models; using Microsoft.Extensions.Options; using Quartz; namespace EnvelopeGenerator.Finalizer { public class Worker : IJob { private readonly ILogger _logger; private readonly WorkerOptions _options; public Worker(ILogger logger, IOptions workerOptions) { _logger = logger; _options = workerOptions.Value; } public async Task Execute(IJobExecutionContext context) { while (!context.CancellationToken.IsCancellationRequested) { if (_logger.IsEnabled(LogLevel.Information)) { _logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now); } await Task.Delay(_options.IntervalInMillisecond, context.CancellationToken); } } } }