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

HeartbeatQueueTaskCommand

Назначение

Heartbeat выполняемой задачи. Обновляет время последней активности (например UpdatedAt), чтобы система считала задачу живой и не помечала её по таймауту.

Цель

Продлить время жизни задачи в статусе Started и избежать автоматической установки статуса Timeout.

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

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

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

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

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

Валидация

  • Задача с TaskId должна существовать. Если не найдена — вернуть ошибку.
  • Задача должна находиться в статусе Started.

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

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

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

API

QueueTasksController.HeartbeatQueueTask — POST {taskId}/heartbeat