HeartbeatQueueTaskCommand
Назначение
Heartbeat выполняемой задачи. Обновляет время последней активности (например UpdatedAt), чтобы система считала задачу живой и не помечала её по таймауту.
Цель
Продлить время жизни задачи в статусе Started и избежать автоматической установки статуса Timeout.
Command: HeartbeatQueueTaskCommand (Входные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| TaskId | Guid | Обязательное | Идентификатор задачи |
примечание
TenantId берётся из контекста запроса.
Result: HeartbeatQueueTaskCommandResult (Выходные данные)
| Поле | Тип | Обязательность | Описание |
|---|---|---|---|
| Success | bool | Обязательное | Признак успешного heartbeat |
Валидация
- Задача с TaskId должна существовать. Если не найдена — вернуть ошибку.
- Задача должна находиться в статусе Started.
Бизнес-логика (Handler)
- Получить сущность PanoramasQueueTaskEntity по TaskId (и TenantId). Если не найдена — вернуть ошибку «Задача не найдена».
- Если Status != Started — вернуть ошибку «Heartbeat допустим только для выполняемой задачи».
- Обновить UpdatedAt = текущее время (и при наличии отдельное поле LastHeartbeatAt). Сохранить в БД.
- Сформировать результат (Success = true). Вернуть результат клиенту.
Связанные сущности
API
QueueTasksController.HeartbeatQueueTask — POST {taskId}/heartbeat