using PARR.AIHIT; using PARR.BLL.Services.Interfaces; using PARR.Worker.Settings; namespace PARR.Worker { public class Worker : BackgroundService { private readonly ILogger logger; private readonly IServiceProvider serviceProvider; private readonly WorkerSettings workerSettings; private readonly IIntervalService intervalService; public Worker( ILogger 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(); // 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(); if (syncer != null) await syncer.InvokeFromDatabase(); logger.LogInformation("=== === === === Конец синхронизации === === === ==="); } } }