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

Управление очередями запуска

Пулы (Pools) - механизм ограничения параллельного выполнения задач, позволяющий контролировать, сколько задач из одного или нескольких процессов могут выполняться одновременно.

image_1

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


Рекомендации

Если программные роботы взаимодействуют с десктопными приложениями или браузером в видимом (GUI) режиме, рекомендуется запускать их через выделенную очередь с ограничением на количество одновременно выполняемых задач. Это предотвращает конфликты и перегрузку графической сессии.


Создание очереди

Для создания новой очереди требуется:

  1. Открыть веб-интерфейс оркестратора Airflow;
  2. Перейти в раздел Администрирование >> Пулы;
  3. Выполнить клик по кнопке Добавить пул;
  4. Указать:
    • Имя - название очереди;

      Тип данных: str (Строка)

      Пример: vm_robot_gui

    • Слоты - количество одновременно запускаемых задач;

      Тип данных: int (Целое число)

      Пример: 1

    • Описание - описание очереди;

      Тип данных: str (Строка)

      Пример: Очередь для запуска роботов на ВМ

    • Включить отложенные - учитывать отложенные задачи при подсчёте свободных слотов пула;

      Тип данных: checkbox (Чекбокс)

      Пример: ☐

    image_2
  5. Выполнить клик по кнопке Сохранить.

Использование очереди

Название созданной очереди указывается в параметре Имя пула блока Создать процесс (Dag). Процесс занимает слот пула на всё время работы робота, поэтому следующий запуск ожидает освобождения слота.

image_3

Рядом расположены параметры, которые управляют ожиданием и удержанием слота:

  1. Время ожидания пула, с - сколько секунд процесс готов простоять в очереди к виртуальной машине, пока слот занят другим процессом;

    Тип данных: int (Целое число)

    Пример: 600

  2. Максимальное время удержания пула, с - предельное время, в течение которого процесс удерживает слот. Предохранитель на случай, если робот не завершился штатно.

    Тип данных: int (Целое число)

    Пример: 7200