feat(docker, api, core, dal, domain, workloadBuilder): WorkloadBuillder - формирование кэша по интервалу.

This commit is contained in:
Mikhail Trubnikov
2026-05-19 09:45:38 +10:00
parent e5535857d4
commit 178d136dba
16 changed files with 180 additions and 11 deletions

View File

@@ -0,0 +1,32 @@
using PARR.Core.Services.Workload.Interfaces;
using PARR.WorkloadBuilderWorker.Settings;
namespace PARR.WorkloadBuilderWorker
{
public class RabbitWorker : BackgroundService
{
private readonly ILogger<RabbitWorker> logger;
private readonly IWorkloadCacheBuilderService workloadCacheBuilderService;
private readonly WorkerSettings workerSettings;
public RabbitWorker(ILogger<RabbitWorker> logger, IWorkloadCacheBuilderService workloadCacheBuilderService, WorkerSettings WorkerSettings)
{
this.logger = logger;
this.workloadCacheBuilderService = workloadCacheBuilderService;
this.workerSettings = WorkerSettings;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
logger.LogInformation("Запуск {workerName}", nameof(RabbitWorker));
await workloadCacheBuilderService.ProcessMessagesAsync(workerSettings.MqSettings);
}
public override async Task StopAsync(CancellationToken cancellationToken)
{
await workloadCacheBuilderService.StopProcessingAsync();
await base.StopAsync(cancellationToken);
}
}
}