using Microsoft.Extensions.Logging; using PARR.BLL.Services.Interfaces; namespace PARR.BLL.Services.Implementations { internal class IntervalService : IIntervalService { private readonly ILogger logger; public IntervalService(ILogger logger) { this.logger = logger; } public async Task IntervalInitAsync(IntervalHandlerDelegate intervalHandler, TimeSpan interval) { while (true) { logger.LogInformation($"Запуск по расписанию. Интервал: {interval}"); await intervalHandler.Invoke(); logger.LogInformation($"Следующая дата запуска: {DateTimeOffset.Now.Add(interval)}"); await Task.Delay(interval); } } } }