feat(dal): В TemplateService.ReserveUnusedTemplateAsync больше не передаем JobId при захвате неиспользуемого шаблона.

This commit is contained in:
Mikhail Kuznetsov
2026-03-27 15:02:36 +10:00
parent 3800cac97a
commit 01cb312ea5
6 changed files with 78 additions and 73 deletions

View File

@@ -441,11 +441,6 @@ internal class GroupedTemplateSynchronizer : ITemplateSynchronizer
var expectedName = await templateNameNormalizer.GetNormalizedTemplateNameAsync(tempTemplateForName);
//var existingTemplateByName = await templateService.Get().AsNoTracking()
// .FirstOrDefaultAsync(t => EF.Functions.ILike(t.Name, expectedName));
//if (existingTemplateByName != null)
// logger.LogInformation("Переиспользован шаблон");
var updateRequest = new TemplateUpdaterMq
{
TemplateId = reusableTemplate.Id,

View File

@@ -31,7 +31,7 @@ internal class TemplateReuser : ITemplateReuser
try
{
// Атомарно резервируем один шаблон через DAL
var templateId = await templateService.ReserveUnusedTemplateAsync(unitId, jobId, initiator);
var templateId = await templateService.ReserveUnusedTemplateAsync(unitId, initiator);
if (templateId == null)
{

View File

@@ -1,6 +1,8 @@
using Microsoft.Extensions.Logging;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using PARR.BLL.Domain.Mq;
using PARR.BLL.Services.Interfaces;
using PARR.DAL.Services.Interfaces;
using PARR.TemplateMatcher.Services.Interfaces;
using PARR.TemplateMatcher.Settings;
@@ -11,15 +13,19 @@ internal class TemplateUpdaterMqSender : ITemplateUpdaterMqSender
private readonly ILogger<TemplateUpdaterMqSender> logger;
private readonly IMqService mqService;
private readonly MqSettings mqSettings;
private readonly ITemplateService templateService;
public TemplateUpdaterMqSender(
ILogger<TemplateUpdaterMqSender> logger,
IMqService mqService,
MqSettings mqSettings)
MqSettings mqSettings,
ITemplateService templateService
)
{
this.logger = logger;
this.mqService = mqService;
this.mqSettings = mqSettings;
this.templateService = templateService;
}
public async Task SendTemplateUpdateMessageAsync(TemplateUpdaterMq updateRequest)
@@ -27,8 +33,15 @@ internal class TemplateUpdaterMqSender : ITemplateUpdaterMqSender
logger.LogDebug("Отправка сообщения в очередь '{Queue}' для шаблона {TemplateId}",
mqSettings.TemplateUpdater.QueueName, updateRequest.TemplateId);
//var msg = JsonSerializer.Serialize(updateRequest);
//var result = await mqService.SendAsync(mqSettings.TemplateUpdater, new[] { msg });
//var existingTemplateByName = await templateService.Get().AsNoTracking()
// .FirstOrDefaultAsync(t => EF.Functions.ILike(t.Name, updateRequest.Name) && updateRequest.TemplateId != t.Id);
//if (existingTemplateByName != null)
//{
// logger.LogError("Шаблон с именем {TemplateName} уже существует в базе данных. Текущий Id:{TemplateId}", existingTemplateByName.Name, existingTemplateByName.Id);
// return;
//}
var result = await mqService.SendAsync(mqSettings.TemplateUpdater, new List<object> { updateRequest });
if (result.IsSuccess)