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.DAL.Contracts;
using PARR.EsppApi;
using PARR.EsppApi.Models;
@@ -16,13 +17,15 @@ namespace PARR.EsppOrderLoader
private readonly IEsppApiService esppApiService;
private readonly SettingsFromDb settingsFromDb;
private readonly IServiceProvider serviceProvider;
private readonly IIntervalService intervalService;
public EsppOrderLoader(
WorkerSettings settings,
ILogger<EsppOrderLoader> logger,
IEsppApiService esppApiService,
SettingsFromDb settingsFromDb,
IServiceProvider serviceProvider
IServiceProvider serviceProvider,
IIntervalService intervalService
)
{
this.settings = settings;
@@ -30,6 +33,7 @@ namespace PARR.EsppOrderLoader
this.esppApiService = esppApiService;
this.settingsFromDb = settingsFromDb;
this.serviceProvider = serviceProvider;
this.intervalService = intervalService;
}
@@ -37,23 +41,25 @@ namespace PARR.EsppOrderLoader
{
logger.LogInformation("Запуск сервиса загрузки нарядов из ЕСПП.");
var nextStart = DateTime.Now;
await intervalService.IntervalInitAsync(DownloadOrdersAsync, settings.RepeatEvery);
while (true)
{
if (nextStart.Hour == DateTime.Now.Hour && nextStart.Minute == DateTime.Now.Minute)
{
logger.LogInformation("Загрузка списка нарядов из ЕСПП.");
//var nextStart = DateTime.Now;
await DownloadOrdersAsync();
//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 DownloadOrdersAsync();
// Каждую минуту
await Task.Delay(60 * 1000);
}
// nextStart = DateTime.Now.Add(settings.RepeatEvery);
// logger.LogInformation($"Следующая дата загрузки: {nextStart}");
// }
// // Каждую минуту
// await Task.Delay(60 * 1000);
//}
}