Перейти к основному содержимому

StartQueueTaskCommand

Назначение

Запуск задачи из очереди панорамной съёмки. Статус задачи переводится в Started.

Цель

Зафиксировать начало выполнения задачи воркером и разрешить последующие heartbeat и завершение.

Command: StartQueueTaskCommand (Входные данные)

ПолеТипОбязательностьОписание
TaskIdGuidОбязательноеИдентификатор задачи
примечание

TenantId берётся из контекста запроса.

Result: StartQueueTaskCommandResult (Выходные данные)

ПолеТипОбязательностьОписание
SuccessboolОбязательноеПризнак успешного запуска

Валидация

  • Задача с TaskId должна существовать в PanoramasQueueTaskEntity. Если не найдена — вернуть ошибку.
  • Задача должна находиться в статусе Pending. Если статус другой — вернуть ошибку «Недопустимый статус».

Бизнес-логика (Handler)

  1. Получить сущность PanoramasQueueTaskEntity из таблицы PanoramasQueueTaskEntity по TaskId (и TenantId). Если не найдена — вернуть ошибку «Задача не найдена».
  2. Если Status != Pending — вернуть ошибку «Задача уже запущена или завершена».
  3. Обновить Status = Started, UpdatedAt = текущее время. Сохранить в БД.
  4. Сформировать результат (Success = true). Вернуть результат клиенту.

Связанные сущности

API

QueueTasksController.StartQueueTask — POST {taskId}/start