- SimpleTemplateSynchronizer и GroupedTemplateSynchronizer переведены на паттерн Pipeline с разделением на Read/Write этапы - Выделены контракты этапов (ISimpleSyncStage, IGroupedSyncStage) и контексты (SimpleSyncContext, GroupedSyncContext) - Read-этапы безопасны для тестов (не пишут в БД/MQ), Write-этапы изолированы через отдельные интерфейсы - Добавлено [Perf]-логирование каждого этапа с метриками времени выполнения - Логи приведены к человекочитаемому формату 'Имя' (ID) для Job, JobGroup и Unit - Устранено дублирование данных в контекстах (FilteredUnits перезаписывается, TemplateGroups строго типизирован) - Константы неиспользуемых шаблонов вынесены в UnusedTemplateConstants - Структура проекта реорганизована: SimpleSync, GroupedSync, Implementations, Interfaces
33 lines
912 B
C#
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);
|
|
}
|
|
}
|
|
}
|