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

CancelQueueTaskCommand

Назначение

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

Цель

Прекратить выполнение задачи по инициативе пользователя или системы.

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

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

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

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

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

Валидация

  • Задача с TaskId должна существовать. Если не найдена — вернуть ошибку.
  • Отмена допустима для задач в статусе Pending или Started. Для Completed, Canceled, Error, Timeout — вернуть ошибку «Задачу нельзя отменить».

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

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

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

API

QueueTasksController.CancelQueueTask — POST {taskId}/cancel