feat(bll): IntervalService - сервис для функций которые нужно выполнить в интервале, применена к Master, EsppOrderLoader.

This commit is contained in:
Mikhail Trubnikov
2023-11-29 15:59:27 +10:00
parent 42a8394193
commit 8d63a10581
5 changed files with 85 additions and 28 deletions

View File

@@ -0,0 +1,29 @@
using Microsoft.Extensions.Logging;
using PARR.BLL.Services.Interfaces;
namespace PARR.BLL.Services.Implementations
{
internal class IntervalService : IIntervalService
{
private readonly ILogger<IntervalService> logger;
public IntervalService(ILogger<IntervalService> 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);
}
}
}
}