30 lines
874 B
C#
30 lines
874 B
C#
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);
|
|
}
|
|
}
|
|
}
|
|
}
|