如何从脚本到气流错误退出?

时间:2018-09-16 14:40:29

标签: airflow

说我正在跑步:

t = BashOperator(
    task_id='import',
    bash_command="""python3 script.py '{{ next_execution_date }}' """,
    dag=dag)

由于某种原因,我希望脚本以错误退出,并指示气流他应重试此任务。

我尝试使用os._exit(1),但是Airflow将该任务标记为成功。 我知道有:

from airflow.exceptions import AirflowException
raise AirflowException("error msg")

但这更多的是用DAG编写的函数。我的脚本是独立的,有时不管气流如何,我们都单独运行它。

当Airflow在Python 2.7下运行时,脚本也是Python3 仅仅为了处理错误而在Python3上安装Airflow似乎过多。

还有其他解决方法吗?

1 个答案:

答案 0 :(得分:1)

在Bash命令的末尾添加|| exit 1

bash_command="""python3 script.py '{{ next_execution_date }}' || exit 1 """ 

更多信息https://unix.stackexchange.com/a/309344