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

Запустить Робота

image_1

Описание

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

Блок имеет 3 выпадающих меню. Клик по символу раскрывающегося списка открывает следующее меню:

  • Запустить:
    • Робота - запуск указанного робота в текущем процессе;
    • Группу роботов - позволяет группировать роботов внутри одного процесса;
    • Робот-триггер - позволяет запускать другие процессы из текущего.
  • Использовать глобальную переменную:
    • Да - позволяет использовать глобальную переменную из раздела “Управление переменными” оркестратора Airflow;
    • Нет.
  • Тип ОС - Используемая операционная система на удаленной машине, на которой запускается робот:
    • Windows;
    • Linux.

Функция запустить робота

Функция Запустить робота позволяет создать задачу в процессе (Dag) на запуск робота на удаленной виртуальной машине. Задача состоит из нескольких подзадач:

  1. upload_script - Загрузка робота на удаленную виртуальную машину с сервера Airflow;
  2. get_session_id (только для Windows) - Определение активной сессии на удаленной виртуальной машине;
  3. execute_script - Запуск робота на удаленной виртуальной машине;
  4. cleanup_script и clean_xcom - Очистка временных файлов.
image_2

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

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

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

    Пример: Robot_1

  2. Использовать подключение - ID подключения к удаленной машине из раздела Connections оркестратора Airflow;

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

    Пример: SSH_121

  3. Путь к роботу на сервере - Путь к проекту/процессу на сервере оркестратора Airflow;

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

    Пример: /opt/airflow/scripts/my_robot

  4. Название главного процесса - Название запускаемого файла (с расширением).

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

    Пример: main.py

  5. Директория используемой студии - Путь до установленной студии Puzzle RPA на удаленной виртуальной машине;

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

    Пример: /opt/PuzzleRPA/2.0.0

  6. Таймаут (в секундах) выполнения робота - Ограничение времени работы процесса на удаленной виртуальной машине.

    Тип данных: число

    Пример: 300


Пример

Запуск робота

Для использования созданного робота в оркестраторе Airflow, необходимо сохранить процесс (процессы) как Python-скрипт.

В данном примере алгоритм робота сохранен как Python-скрипт с названием my_script.py:

  1. Создается процесс для оркестратора с задачей Запуск робота;

  2. Название/ID робота указано значение Robot_1, как ID запуска в созданном процессе (DAG);

  3. Путь к роботу на сервере указан путь до Python-скрипта на сервере Airflow;

  4. Название главного процесса указано название Python-скрипта с расширением;

  5. Директория используемой студии указан путь до установленной студии Puzzle RPA;

  6. Порядок выполнения роботов указано значение Robot_1(), что свидетельствует о наличии единственной задачи — Запустить робота с ID Robot_1().

image_3

Результат

Дерево действий в пользовательском интерфейсе Airflow:

image_5

Запуск группы роботов

Функция Запустить группу роботов позволяет группировать задачи в текущем процессе (DAG).

В данном примере выполняется группировка запуска двух роботов:

  1. Название созданной группы group_1;

  2. Внутри группы расположено 2 действия “Запуск робота” с ID Robot_1 и Robot_2;

  3. В блоке “Запустить группу роботов” указан порядок запуска Robot_1() >> Robot_2();

  4. После действия “Запуск группы роботов” выполняется запуск процесса my_process_2 с помощью опции Запустить робот-триггер, с ID триггера puzzle_trigger.

  5. Порядок выполнения роботов указано значение group_1() >> puzzle_trigger(), указывающее необходимость сначала запустить группу роботов group_1, затем триггер с ID puzzle_trigger.

image_6

Результат

Дерево действий в пользовательском интерфейсе Airflow:

image_7

Запуск робота-триггер

Функция Запустить робота-триггер позволяет запустить процесс (DAG), который ранее был загружен на сервер Airflow. В данном примере выполняется запуск процесса my_process_2.

image_8

Результат

Дерево действий в пользовательском интерфейсе Airflow:

image_9

Запущенный процесс my_process_2 из процесса my_process:

image_10