Files
parr_api/PARR.Master/Master.cs

70 lines
2.2 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using PARR.Core.Common.Interfaces;
using PARR.Master.Services;
using PARR.Master.Settings;
namespace PARR.Master
{
internal class Master : IMaster
{
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,
IIntervalService intervalService
)
{
this.settings = settings;
this.logger = logger;
this.serviceProvider = serviceProvider;
this.intervalService = intervalService;
}
public async Task StartAsync()
{
logger.LogInformation("Запуск сервиса.");
await intervalService.IntervalInitAsync(ManageOrdersAsync, settings.RepeatEvery);
//var nextStart = DateTime.Now;
//while (true)
//{
// if (nextStart.Hour == DateTime.Now.Hour && nextStart.Minute == DateTime.Now.Minute)
// {
// logger.LogInformation("Запуск по расписанию.");
// await ManageOrdersAsync();
// nextStart = DateTime.Now.Add(settings.RepeatEvery);
// logger.LogInformation($"Следующая дата запуска: {nextStart}");
// }
// // Каждую минуту
// await Task.Delay(60 * 1000);
// }
}
private async Task ManageOrdersAsync()
{
using (var scope = serviceProvider.CreateScope())
{
var orderMasterService = scope.ServiceProvider.GetService<IOrderMasterService>();
if (orderMasterService == null)
throw new Exception("Не смог получить серивс IOrderMasterService, scope.ServiceProvider.GetService<IOrderMasterService>()");
await orderMasterService.ManageOrdersAsync();
}
}
}
}