Фоновые задачи
Выполнение некоторых действий в системе, например, включение/выключение услуги, может занимать длительное время. Для таких действий в системе регистрируются задачи, статус выполнения которых можно отслеживать.
Объект task
Объекты task создаются при вызове некоторых методов API, их уникальные id возвращаются в ответе.
Каждая задача создается для конкретного базового объекта в системе, например, domain или vod.
Основные параметры в объекте любой создаваемой задачи:
id- уникальный идентификатор задачи. По данному id можно получить текущее состояние задачи, перезапустить задачу, отменить задачу;task_type- тип задачи. У каждой задачи есть тип, который определяет результат ее выполнения;status- текущий статус задачи. Список статусов будет рассмотрен далеe;percentage- процент выполнения задачи. Задача делится на подзадачи. При выполнении каждой подзадачи процент увеличивается. Минимальное значение0, максимальное -100.result- результат выполнения задачи. Например, id созданного объекта в системе.
Типы задач
Актуальные типы задач указаны в каждой версии API.
Статусы задач
TO_IN_PROGRESS- задача в очереди на выполнениеIN_PROGRESS- задача выполняетсяCOMPLETED- задача успешно выполненаFAILED- задача не выполненаTO_CANCELLING- задача в очереди на отменуCANCELLING- задача в процессе отменыCANCELED- задача отменена
Создание задачи
Одновременно не могут быть активны более одной задачи одного типа для одного и того же базового объекта в системе. Задача является активной, если ее статус не COMPLETED или не CANCELED. Например, не может одновременно выполняться включение и выключение услуги CDN для сайта.
Отмена задачи
Отменить задачу возможно, только если ее текущий статус FAILED.
При отмене задачи, ее статус меняется на TO_CANCELLING, далее она попадает в обработчик задач и получает статус CANCELLING. После попадания задачи в обработчик запускается процесс отката всех ранее внесенных изменений в объектах в исходное состояние.
После успешного завершения процесса отмены ее статус меняется на CANCELED. При ошибке во время отмены статус задачи меняется на FAILED.
Перезапуск задачи
Перезапуск задачи используется для повторного запуска существующей задачи со статусом FAILED. Задача переходит в статуc TO_IN_PROGRESS и продолжает выполнение с последней выполненной подзадачи.