Airflow:如何强制失败的bash运算符

时间:2017-04-07 20:03:57

标签: python airflow

我正在使用气流BashOperator运行的脚本(例如:do_stuff.sh)中运行一系列python脚本(例如:script1.py,script2.py)。我想知道如果不满足特定条件,是否有一种方法可以在python脚本中使BashOperator失败?我不需要脚本本身只是BashOperator失败,所以我可以触发一个clean_up任务。

script1.py:

def main(x)
    if x == 0:
        raise ValueError('BashOperator FAILS')
    else:
        print x
if __name__ == '__main__':
    import plac
    plac.call(main)

很抱歉,如果我的问题是基本的,我仍然是气流/脚本的新手。

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

在你的bash命令中你应该能够做到:

exit 123

在这种情况下,您将退出错误代码123,但您可以使用您想要的任何错误代码。

编辑:

在python中,以你所说的方式抛出异常也将导致任务失败:

raise ValueError('This will exit bash with an error.')