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

@@ -1,5 +1,6 @@
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using PARR.BLL.Services.Interfaces;
using PARR.Master.Services;
using PARR.Master.Settings;
@@ -10,16 +11,19 @@ namespace PARR.Master
private readonly WorkerSettings settings;
private readonly ILogger<Master> logger;
private readonly IServiceProvider serviceProvider;
private readonly IIntervalService intervalService;
public Master(
WorkerSettings settings,
ILogger<Master> logger,
IServiceProvider serviceProvider
IServiceProvider serviceProvider,
IIntervalService intervalService
)
{
this.settings = settings;
this.logger = logger;
this.serviceProvider = serviceProvider;
this.intervalService = intervalService;
}
@@ -27,23 +31,25 @@ namespace PARR.Master
{
logger.LogInformation("Запуск сервиса.");
var nextStart = DateTime.Now;
await intervalService.IntervalInitAsync(ManageOrdersAsync, settings.RepeatEvery);
while (true)
{
if (nextStart.Hour == DateTime.Now.Hour && nextStart.Minute == DateTime.Now.Minute)
{
logger.LogInformation("Запуск по расписанию.");
//var nextStart = DateTime.Now;
await ManageOrdersAsync();
//while (true)
//{
// if (nextStart.Hour == DateTime.Now.Hour && nextStart.Minute == DateTime.Now.Minute)
// {
// logger.LogInformation("Запуск по расписанию.");
nextStart = DateTime.Now.Add(settings.RepeatEvery);
logger.LogInformation($"Следующая дата запуска: {nextStart}");
}
// await ManageOrdersAsync();
// Каждую минуту
await Task.Delay(60 * 1000);
}
// nextStart = DateTime.Now.Add(settings.RepeatEvery);
// logger.LogInformation($"Следующая дата запуска: {nextStart}");
// }
// // Каждую минуту
// await Task.Delay(60 * 1000);
// }
}