Передача исключений в Airflow - PullRequest
0 голосов
/ 03 июня 2019

Я новичок в Apache Airflow и планирую запускать файлы сценариев Python и R с использованием класса BashOperator.Я хочу понять, как исключения должны работать в двух ситуациях:
1. Сценарий R или Python по какой-то причине дает сбой;или
2. Сценарий R или Python завершается, но я хочу требовать участия человека, прежде чем группа DAG перейдет к следующей задаче.

У меня есть два очень простых вопроса:
1. Как работает исключениепередать из файла сценариев R или Python в BashOperator DAG?Например, должен ли вызов файла сценария R находиться внутри блока try в BashOperator?
2. Как передать пользовательское исключение (предупреждение? Ошибка?), Чтобы даже если сценарий R или Python завершился успешно,Я могу приостановить выполнение DAG?

Буду признателен за любые примеры обработки исключений Airflow, на которые вы могли бы указать мне.

1 Ответ

1 голос
/ 04 июня 2019

Забудьте, что вы используете любые операторы Airflow.

Просто скажите, что вы пишете Bash Script, который запускает скрипт R или Python.

Случай 1 : Сценарий Bash, который завершается ошибкой, если происходит сбой Python Script:

set -e
python test_file.py

Случай 2 : Bash Script, который проходит, даже если Python Script терпит неудачу:

python test_file.py || exit 0

Теперь просто передайте один из приведенных выше скриптов bash в BashOperator.

По сути, BashOperator просто запускает обычные команды / скрипт Bash и передает журналы и состояние завершения скрипта. В случае 1 ваша задача «Воздушный поток» также не будет выполнена, а в случае 2 задача «Воздушный поток» не будет выполнена.

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