Files
parr_api/PARR.Worker/PARR.Worker/Worker.cs

72 lines
2.6 KiB
C#

using PARR.AIHIT;
using PARR.BLL.Services.Interfaces;
using PARR.Worker.Settings;
namespace PARR.Worker
{
public class Worker : BackgroundService
{
private readonly ILogger<Worker> logger;
private readonly IServiceProvider serviceProvider;
private readonly WorkerSettings workerSettings;
private readonly IIntervalService intervalService;
public Worker(
ILogger<Worker> logger,
IServiceProvider serviceProvider,
WorkerSettings workerSettings,
IIntervalService intervalService
)
{
this.logger = logger;
this.serviceProvider = serviceProvider;
this.workerSettings = workerSettings;
this.intervalService = intervalService;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
logger.LogInformation("--- Сервис запущен! ---");
await intervalService.IntervalInitAsync(RunAihitSyncAsync, workerSettings.OccursEvery);
//while (!stoppingToken.IsCancellationRequested)
//{
// logger.LogInformation("--- --- --- --- Начало синхронизации --- --- --- ---");
// using var scope = serviceProvider.CreateScope();
// var services = scope.ServiceProvider;
// var syncer = services.GetService<ISyncher>();
// if (syncer != null) await syncer.InvokeFromDatabase();
// //var hosts = await hostService.Get().ToListAsync();
// //foreach ( var host in hosts ) { logger.LogInformation($"{host.HostName}"); }
// //await attachmentUploader.UploadAsync();
// //logger.LogInformation("Worker running at: {time}", DateTimeOffset.Now);
// logger.LogInformation("=== === === === Конец синхронизации === === === ===");
// var mills = (int?) workerSettings?.OccursEvery.TotalMilliseconds ?? 60*1000;
// await Task.Delay(mills, stoppingToken);
//}
}
private async Task RunAihitSyncAsync()
{
logger.LogInformation("--- --- --- --- Начало синхронизации --- --- --- ---");
using var scope = serviceProvider.CreateScope();
var services = scope.ServiceProvider;
var syncer = services.GetService<ISyncher>();
if (syncer != null)
await syncer.InvokeFromDatabase();
logger.LogInformation("=== === === === Конец синхронизации === === === ===");
}
}
}