气流:如何强制失败 bash 运算符
Airflow: how to force fail bash operator
我是 运行 一系列 python 脚本(例如:script1.py、script2.py)在一个脚本(例如:do_stuff.sh)中我 运行 使用气流 BashOperator。我想知道如果不满足特定条件,是否有一种方法可以使 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)
抱歉,如果我的问题很基础,我在 airflow/scripting 还是个新手。
感谢您的帮助!
在您的 bash 命令中,您应该能够做到:
exit 123
在这种情况下,您将退出并返回错误代码 123,但您可以使用任何您想要的错误代码。
编辑:
在 python 中,按照您所说的方式抛出异常也会使任务失败:
raise ValueError('This will exit bash with an error.')
我是 运行 一系列 python 脚本(例如:script1.py、script2.py)在一个脚本(例如:do_stuff.sh)中我 运行 使用气流 BashOperator。我想知道如果不满足特定条件,是否有一种方法可以使 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)
抱歉,如果我的问题很基础,我在 airflow/scripting 还是个新手。
感谢您的帮助!
在您的 bash 命令中,您应该能够做到:
exit 123
在这种情况下,您将退出并返回错误代码 123,但您可以使用任何您想要的错误代码。
编辑:
在 python 中,按照您所说的方式抛出异常也会使任务失败:
raise ValueError('This will exit bash with an error.')