fix(templateMatcher): Исправление ошибок в именах шаблонов и рефакторинг синхронизации
- Устранена ошибка, когда при переиспользовании шаблона для шорткодов передавался ЭК "КОМПЛЕКСЫ-[ЗО]" вместо целевого ЭК шаблона. - Проведен небольшой рефакторинг общих процессов синхронизации различных типов групп работ.
This commit is contained in:
@@ -1,27 +1,31 @@
|
||||
using PARR.Domain.Entities;
|
||||
using PARR.Domain.Common.Rabbit.Messages.TemplateMatching;
|
||||
using PARR.Domain.Entities.Base.History;
|
||||
using PARR.Domain.Entities.Job;
|
||||
using PARR.Domain.Entities.Unit;
|
||||
|
||||
namespace PARR.TemplateMatcher.Services.Interfaces
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Отвечает за полный цикл переиспользования Unused-шаблона:
|
||||
/// 1. Атомарный захват в БД (с retry).
|
||||
/// 2. Нормализация имени.
|
||||
/// 3. Отправка команды на обновление (активацию) в MQ.
|
||||
/// </summary>
|
||||
public interface ITemplateReuser
|
||||
{
|
||||
/// <summary>
|
||||
/// Пытается переиспользовать неиспользуемый шаблон для указанной работы и ЭК.
|
||||
/// При резервировании шаблона для правильного расчета NextRun Id работы
|
||||
/// и ЭК устанавливается при захвате.
|
||||
/// Пытается переиспользовать шаблон. Возвращает true, если успешно захвачен и отправлена команда.
|
||||
/// </summary>
|
||||
/// <param name="jobId">Id работы.</param>
|
||||
/// <param name="unitId">Id ЭК.</param>
|
||||
/// <param name="initiator">Данные инициатора операции.</param>
|
||||
/// <param name="maxAttempts">Максимальное количество попыток (по умолчанию 3).</param>
|
||||
/// <returns>
|
||||
/// Зарезервированный шаблон или <see langword="null"/>,
|
||||
/// если не удалось получить шаблон после всех попыток.
|
||||
/// </returns>
|
||||
Task<Template?> TryReuseOneUnusedTemplateAsync(
|
||||
Guid jobId,
|
||||
Guid unitId,
|
||||
Task<bool> TryReuseAsync(
|
||||
Job targetJob,
|
||||
Guid targetUnitId,
|
||||
Unit? targetUnit,
|
||||
int? index,
|
||||
List<UnitInTemplateMessage> unitsInTemplate,
|
||||
bool isActiveTemplate,
|
||||
bool isActiveSchedule,
|
||||
HistoryInitiator initiator,
|
||||
int maxAttempts = 3);
|
||||
CancellationToken ct = default);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user