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

Описание
Блок предназначен для создания ветвления в процессе (DAG) оркестратора.
Требуется указать:
- Название/ID ветвления, которое должно быть уникальным для данного процесса;
Тип данных:
строка
Пример:
test_branch
- Выполнить функцию - Наименование функции, результат выполнения которой определит ветвь, выполняемую в текущем процессе.
Тип данных:
строка
Пример:
do_something
Использование функций
В поле Выполнить функцию необходимо указать наименование функции, результат выполнения которой определит ветвь, выполняемую в текущем процессе.

Ограничения
Внутри функций допускается использование:
- Присвоение/вызов переменных;
- Блоки из категорий Стандартные:
- Логика;
- Циклы;
- Мат.операции, кроме блока:
- Строки, кроме блоков:
- Массивы, кроме блоков:
- Словари, кроме блоков:
- Функции;
- Блок Получить глобальную переменную Airflow.
Пример использования
Описание
В данном примере создается процесс (DAG) с функцией ветвления и состоит из 3 действий:
- Создать ветвление - Определяет запускаемое действие на основе результата функции select_branch;
- Запустить робот-триггер - Запускает другой процесс (DAG), предварительно загруженный в оркестратор Airflow;
- Запустить робота - Запускает указанного робота;
Определение запускаемого действия
Блок “Создать ветвление” использует функцию select_branch, которая содержит:
- Получить глобальную переменную - Получает значение переменной var_airflow оркестратора;
- “Условие Если - иначе” - Сравнивает значение полученной переменной со строкой start_test;
Логика выполнения задач
-
В процессе (DAG) выполняется ветвление действий на основе функции select_branch;
-
Внутри функции выполняется считывание значения переменной var_airflow оркестратора;
-
Если значение переменной соответствует строке start_test, то возвращается значение puzzle_trigger. В ином случае Robot_1;
-
В поле Порядок выполнения роботов указано значение
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 робота.
- Первым действием запускается действие Создать ветвление с ID ветвления

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