feat(api, Core, Domain, Dal): Для entity моделей, для DateModified создан атрибут ManualControl - отключает автоматическое управление датой. TaskReconciliationService - сервис по управлению задачами в статусах ошибки, зависла. ITaskMqSettingsProvider - провайдер для управления настройками MQ в зависимости от TaskType
This commit is contained in:
@@ -97,7 +97,12 @@ namespace PARR.Core.Services.Task.Handlers
|
||||
private async Task<bool> TryCaptureTaskAsync(TaskItem task)
|
||||
{
|
||||
if (task.StatusCode != TaskItemStatusEnum.Pending)
|
||||
{
|
||||
// Логируем, но не считаем ошибкой
|
||||
logger.LogDebug("Задача {TaskId} не в Pending (статус {Status}), пропускаем", task.Id, task.StatusCode);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// Атомарный захват задачи
|
||||
var affectedRows = await taskRepository.TaskCaptureAsync(task.Id);
|
||||
@@ -112,6 +117,8 @@ namespace PARR.Core.Services.Task.Handlers
|
||||
return true;
|
||||
}
|
||||
|
||||
logger.LogDebug("Задача {TaskId} уже захвачена другим воркером", task.Id);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -221,6 +228,10 @@ namespace PARR.Core.Services.Task.Handlers
|
||||
// Вариант: сохранить флаг, а воркер после ProcessAsync проверит и отправит
|
||||
// Это будет реализовано в BackgroundService
|
||||
|
||||
//todo: !!! Вот это делаем дальше!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
|
||||
// тоже самое в WorkloadCacheBuilderService
|
||||
|
||||
//todo:!!!!!!!!!
|
||||
await System.Threading.Tasks.Task.Delay(50);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user