我正在使用气流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)
很抱歉,如果我的问题是基本的,我仍然是气流/脚本的新手。
感谢您的帮助!
答案 0 :(得分:2)
在你的bash命令中你应该能够做到:
exit 123
在这种情况下,您将退出错误代码123,但您可以使用您想要的任何错误代码。
编辑:
在python中,以你所说的方式抛出异常也将导致任务失败:
raise ValueError('This will exit bash with an error.')