防止操作员任务抛出“;AirflowException:Bash命令失败;
我有一个气流任务,可以运行防止操作员任务抛出“;AirflowException:Bash命令失败;,airflow,Airflow,我有一个气流任务,可以运行youtube dl,工作正常。我正在与Bash操作员一起运行此操作: YOUTUBE_DL_CMD = ( '/usr/local/bin/youtube-dl -w -i ' '--max-downloads {{ params.max_downloads }} ' '--write-info-json "{{ params.playlist_url }}" ' '-o "{{ params.output }}"' ) 然而,当它完
youtube dl
,工作正常。我正在与Bash操作员一起运行此操作:
YOUTUBE_DL_CMD = (
'/usr/local/bin/youtube-dl -w -i '
'--max-downloads {{ params.max_downloads }} '
'--write-info-json "{{ params.playlist_url }}" '
'-o "{{ params.output }}"'
)
然而,当它完成时,由于“错误的退出代码”,它会触发一个错误。并因此将我的DAG运行标记为失败
这是通过调用工具后退出的方式来实现的。以下是我从气流日志中提取的有关错误的一些输出。请注意,——已达到最大下载限制,当成功退出时,youtube dl
会输出中止
{{bash_operator.py:128}} INFO - --max-download limit reached, aborting.
{{bash_operator.py:132}} INFO - Command exited with return code 101
{{taskinstance.py:1047}} ERROR - Bash command failed
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/airflow/models/taskinstance.py", line 922, in _run_raw_task
result = task_copy.execute(context=context)
File "/usr/local/lib/python3.7/site-packages/airflow/operators/bash_operator.py", line 136, in execute
raise AirflowException("Bash command failed")
airflow.exceptions.AirflowException: Bash command failed
有什么方法可以防止气流中出现此错误
出口代码101看起来像是真正的问题-
您可以隐藏youtube\u dl
退出气流的代码:
YOUTUBE\u DL\u CMD=(
“/usr/local/bin/youtube dl-w-i”
“--max downloads{{params.max_downloads}”
'--write info json“{params.playlist_url}}”
'-o“{params.output}}”| | true'
)
正是我想要的!正如预期的那样,气流显示了成功