Files
Mikhail Kuznetsov a438f18480 refactor(templateMatcher): Переход на Pipeline-архитектуру для SimpleSync и GroupedSync.
- SimpleTemplateSynchronizer и GroupedTemplateSynchronizer переведены на паттерн Pipeline с разделением на Read/Write этапы
- Выделены контракты этапов (ISimpleSyncStage, IGroupedSyncStage) и контексты (SimpleSyncContext, GroupedSyncContext)
- Read-этапы безопасны для тестов (не пишут в БД/MQ), Write-этапы изолированы через отдельные интерфейсы
- Добавлено [Perf]-логирование каждого этапа с метриками времени выполнения
- Логи приведены к человекочитаемому формату 'Имя' (ID) для Job, JobGroup и Unit
- Устранено дублирование данных в контекстах (FilteredUnits перезаписывается, TemplateGroups строго типизирован)
- Константы неиспользуемых шаблонов вынесены в UnusedTemplateConstants
- Структура проекта реорганизована: SimpleSync, GroupedSync, Implementations, Interfaces
2026-06-11 15:09:46 +10:00

33 lines
912 B
C#

using PARR.TemplateMatcher.Services.Interfaces;
namespace PARR.TemplateMatcherWorker
{
public class Worker : BackgroundService
{
private readonly ILogger<Worker> _logger;
private readonly IMqTemplateMatcher mqTemplateMatcher;
public Worker(
ILogger<Worker> logger,
IMqTemplateMatcher mqTemplateMatcher
)
{
_logger = logger;
this.mqTemplateMatcher = mqTemplateMatcher;
}
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
await mqTemplateMatcher.StartAsync();
await Task.Delay(Timeout.Infinite, stoppingToken);
}
public override async Task StopAsync(CancellationToken cancellationToken)
{
await mqTemplateMatcher.StopAsync();
await base.StopAsync(cancellationToken);
}
}
}