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

Фоновые задачи

Выполнение некоторых действий в системе, например, включение/выключение услуги, может занимать длительное время. Для таких действий в системе регистрируются задачи, статус выполнения которых можно отслеживать.

Объект 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 и продолжает выполнение с последней выполненной подзадачи.