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

Создать ветвление

image_1

Описание

Блок предназначен для создания ветвления в процессе (DAG) оркестратора.

Требуется указать:

  • Название/ID ветвления, которое должно быть уникальным для данного процесса;

    Тип данных: строка

    Пример: test_branch

  • Выполнить функцию - Наименование функции, результат выполнения которой определит ветвь, выполняемую в текущем процессе.

    Тип данных: строка

    Пример: do_something


Использование функций

В поле Выполнить функцию необходимо указать наименование функции, результат выполнения которой определит ветвь, выполняемую в текущем процессе.

image_2

Ограничения

Внутри функций допускается использование:

  1. Присвоение/вызов переменных;
  2. Блоки из категорий Стандартные:
  3. Блок Получить глобальную переменную Airflow.

Пример использования

Описание

В данном примере создается процесс (DAG) с функцией ветвления и состоит из 3 действий:

Определение запускаемого действия

Блок “Создать ветвление” использует функцию select_branch, которая содержит:

  • Получить глобальную переменную - Получает значение переменной var_airflow оркестратора;
  • “Условие Если - иначе” - Сравнивает значение полученной переменной со строкой start_test;

Логика выполнения задач

  1. В процессе (DAG) выполняется ветвление действий на основе функции select_branch;

  2. Внутри функции выполняется считывание значения переменной var_airflow оркестратора;

  3. Если значение переменной соответствует строке start_test, то возвращается значение puzzle_trigger. В ином случае Robot_1;

  4. В поле Порядок выполнения роботов указано значение test_branch() >> [puzzle_trigger(), Robot_1()]. Значение определяет зависимости отдельных роботов:

    • Первым действием запускается действие Создать ветвление с ID ветвления test_branch, указанном в поле Название/Id ветвления;
    • Список [puzzle_trigger(), Robot_1()]определяет зависимость запуска действий от результата выполнения функции select_branch в блоке Создать ветвление.

    Если из функции возвращается значение puzzle_trigger, то будет запущено действие Запустить робот-триггер с ID puzzle_trigger, указанном в поле Название/ID триггера.

    Если из функции возвращается значение Robot_1, то будет запущено действие Запустить робота с ID Robot_1, указанном в поле Название/ID робота.

image_3

Результат

В данном случае значение переменной var_airflow равно start_test, по этой причине запускается действие Запустить робот-триггер с ID puzzle_trigger. Граф-схема процесса в интерфейсе Airflow:

image_4