72 lines
2.6 KiB
C#
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("=== === === === Конец синхронизации === === === ===");
|
|
}
|
|
}
|
|
} |