Работа с Задачами#
Задача — вычисление, предназначенное для одноразового запуска из Очереди.
Атрибуты сущности#
Атрибут |
Описание |
|---|---|
name |
Уникальное пользовательское наименование Задачи. Атрибут доступен только на чтение. Сервис Пакетной обработки формирует уникальное значение |
queue |
Наименование Очереди, которой принадлежит Задача. Изменение наименования Очереди, после создания Задачи, не рекомендуется |
description |
Необязательное произвольное описание Задачи. Строка длиной до 100 символов, приходит в кодировке UTF-8. Атрибут предназначен для облегчения поиска и отображения Задач. |
httpTarget |
Описание вызываемого сервиса |
createTime |
Дата и время создания сущности с точностью до миллисекунд. В базе данных хранится с типом данных timestamp. Заполняется автоматически и не меняется. По протоколу HTTP передается как строка в формате RFC 3339 UTC «Zulu», с точностью до миллисекунд. Пример: «2014-10-02T15:01:23.045Z». Пустое значение в ответах не рекомендуется |
updateTime |
Дата и время последнего изменения сущности с точностью до миллисекунд. В базе данных хранится с типом данных timestamp. По протоколу HTTP передается как строка в формате RFC 3339 UTC «Zulu», с точностью до миллисекунд. Пример: «2014-10-02T15:01:23.045Z». |
state |
Текущее состояние Задачи. Возможные значения: |
firstAttempt |
Содержит объект с описанием первой попытки запуска Задачи. Если Задача не была ни разу вызвана, значение атрибута равно |
lastAttempt |
Содержит объект с описанием последней попытки запуска Задачи. Если Задача не была ни разу вызвана, значение атрибута равно |
retryState |
Объект |
scheduleTime |
Расписание запуска Задачи. Тип данных — timestamp с часовым поясом (необязательный атрибут). Может быть пустой строкой ( |
dependsOn |
Уникальное наименование блокирующей Задачи. Блокирующая задача может находится как в одной Очереди с текущей Задачей, так и в сторонней. Необязательный атрибут. Может быть пустой строкой ( |
async |
Параметр для установки асинхронного выполнения Задания. Возможные значения: |
responseTimeOut |
Параметр определяет максимальное время ожидания ответа от вызываемого веб-сервиса. |
Состояние Задачи#
Возможны следующие значения состояния Задачи:
Статус |
Описание |
|---|---|
READY |
Задача готова к запуску на исполнение |
RUNNING |
Задача запущена и выполняется |
QUEUED |
Задача находится в Очереди на выполнение |
DONE |
Задача успешно выполнена |
FAILED |
Выполнение Задачи завершилось неуспешно (ошибка или тайм-аут) |
BLOCKED |
Задача заблокирована другой Задачей |
CANCELED |
Отменена. Запуск на исполнение не производится |
INTERRUPTING |
Экземпляр Задания находится в процессе прерывания выполнения |
INTERRUPTED |
Выполнение экземпляра Задания прервано пользователем |
Возможные изменения состояния Задачи#
Действия над сущностью#
Для работы с сущностью доступны следующие действия:
Создание Задачи;
Получение атрибутов Задачи;
Получение атрибутов Задач;
Поиск Задач из списка Задач;
Получение суммарного количества Задач в Очереди;
Обновление Задачи;
Отмена Задачи;
Перезапуск Задачи;
Передачи финального состояния Задач;
Прерывание выполнения Задачи. Требуется реализовать дополнительную логику на стороне вызываемого сервиса.
Примечание
В сервисе есть возможность массового создания Задач по Шаблонам, детальнее об этом можно прочитать в разделе Работа с Шаблонами Задач.
Прерывание выполнения Задачи#
Прерывание происходит на стороне Вызываемого сервиса.
Для прерывания выполнения Задачи требуется соблюдение условий:
Задача находится в статусе
RUNNING;Задача с асинхронным типом выполнения;
На стороне Вызываемого сервиса реализована логика прерывания.
Изменение статусов#
При отправке запроса на прерывание, Задача меняет свой статус на INTERRUPTING. При получении ответа с кодом 200, Задача меняет свой статус на INTERRUPTED.
При получении ответа с другими кодами ответа, Задача возвращается в статус RUNNING.
Use Case Diagram#
Особенности работы с сущностями#
Хранилище сущностей в базе данных разделено на оперативное и историческое. Некоторые запросы по поиску или получению информации из исторического хранилища могут происходить с задержкой, в зависимости от количества записей в историческом хранилище. Допускается задержка в 5 секунд.
