fix(templateMatcher): Исправление ошибок в именах шаблонов и рефакторинг синхронизации
- Устранена ошибка, когда при переиспользовании шаблона для шорткодов передавался ЭК "КОМПЛЕКСЫ-[ЗО]" вместо целевого ЭК шаблона. - Проведен небольшой рефакторинг общих процессов синхронизации различных типов групп работ.
This commit is contained in:
@@ -26,20 +26,34 @@ namespace PARR.TemplateMatcher
|
||||
configuration.GetSection(nameof(TemplateSettings)).Bind(templateSettings);
|
||||
services.AddSingleton(templateSettings);
|
||||
|
||||
services.AddTransient<IMqTemplateMatcher, MqTemplateMatcher>();
|
||||
services.AddTransient<IJobValidatorService, JobValidatorService>();
|
||||
services.AddTransient<IJobGroupValidatorService, JobGroupValidatorService>();
|
||||
services.AddTransient<ITemplateMatcher, TemplateMatcher>();
|
||||
services.AddTransient<ITemplateReuser, TemplateReuser>();
|
||||
// === 1. Singleton: Долгоживущие сервисы и обработчики очередей ===
|
||||
services.AddSingleton<IMqTemplateMatcher, MqTemplateMatcher>();
|
||||
|
||||
// === 2. Scoped: Бизнес-логика и работа с БД (DbContext) ===
|
||||
// Создаются заново для каждого сообщения из очереди (внутри CreateAsyncScope)
|
||||
services.AddScoped<ITemplateMatcher, TemplateMatcher>();
|
||||
services.AddScoped<ITemplateSynchronizer, SimpleTemplateSynchronizer>();
|
||||
services.AddScoped<ITemplateSynchronizer, GroupedTemplateSynchronizer>();
|
||||
|
||||
// Пайплайн аллокации шаблонов
|
||||
services.AddScoped<ITemplateAllocationService, TemplateAllocationService>();
|
||||
services.AddScoped<ITemplateReuser, TemplateReuser>();
|
||||
services.AddScoped<ITemplateDeactivator, TemplateDeactivator>();
|
||||
|
||||
// Пайплайн групповых шаблонов
|
||||
services.AddScoped<IGroupedTemplateUnitFilter, GroupedTemplateUnitFilter>();
|
||||
services.AddScoped<IUnitInTemplateConflictMapper, UnitInTemplateConflictMapper>();
|
||||
services.AddScoped<IGroupedTemplateBuilder, GroupedTemplateBuilder>();
|
||||
services.AddScoped<IGroupedTemplateProcessor, GroupedTemplateProcessor>();
|
||||
|
||||
// Валидаторы
|
||||
services.AddScoped<IJobValidatorService, JobValidatorService>();
|
||||
services.AddScoped<IJobGroupValidatorService, JobGroupValidatorService>();
|
||||
|
||||
// === 3. Transient: Stateless утилиты и инфраструктура ===
|
||||
// Легковесные сервисы без состояния, создаются по требованию
|
||||
services.AddTransient<ITemplateMqPublisher, TemplateMqPublisher>();
|
||||
services.AddTransient<ITemplateNameNormalizer, TemplateNameNormalizer>();
|
||||
services.AddTransient<ITemplateUpdaterMqSender, TemplateUpdaterMqSender>();
|
||||
services.AddTransient<ITemplateDeactivator, TemplateDeactivator>();
|
||||
services.AddTransient<IUnitInTemplateConflictMapper, UnitInTemplateConflictMapper>();
|
||||
services.AddTransient<IGroupedTemplateUnitFilter, GroupedTemplateUnitFilter>();
|
||||
services.AddTransient<IGroupedTemplateBuilder, GroupedTemplateBuilder>();
|
||||
services.AddTransient<IGroupedTemplateProcessor, GroupedTemplateProcessor>();
|
||||
services.AddTransient<ITemplateSynchronizer, SimpleTemplateSynchronizer>();
|
||||
services.AddTransient<ITemplateSynchronizer, GroupedTemplateSynchronizer>();
|
||||
}
|
||||
|
||||
public static IConfigurationBuilder AddTemplateMatcherConfigurations(this IConfigurationBuilder builder, IServiceCollection services)
|
||||
|
||||
Reference in New Issue
Block a user