namespace BankOperationsUpdate.WorkerService; public class Worker : BackgroundService { private readonly ILogger _logger; private TimeSpan refreshInterval = TimeSpan.FromMinutes(2); private readonly UpdateOperations _updateOperations; public Worker(ILogger logger, UpdateOperations updateOperations) { _logger = logger; _updateOperations = updateOperations; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { while (!stoppingToken.IsCancellationRequested) { try { _updateOperations.Execute(); } catch (Exception ex) { _logger.LogError(ex.Message); } _logger.LogInformation("end of period"); await Task.Delay(refreshInterval, stoppingToken); } } }