如何强制气流任务失败?
How do I force a task on airflow to fail?
我有一个 python 可调用 process_csv_entries
来处理 csv 文件条目。我希望我的任务只有在所有条目都已成功处理后才能成功完成。否则任务应该失败
def process_csv_entries(csv_file):
# Boolean
file_completely_parsed = <call_to_module_to_parse_csv>
return not file_completely_parsed
CSV_FILE=<Sets path to csv file>
t1 = PythonOperator(dag=dag,
task_id='parse_csv_completely',
python_operator=process_csv_entries,
op_args=[CSV_FILE])
t1 似乎成功完成,无论返回值如何。
如何强制 PythonOperator 任务失败?
遇到错误条件时引发异常(在您的情况下:文件未成功解析时)
raise ValueError('File not parsed completely/correctly')
使用合适的消息提出相关错误类型
是的,提高 AirflowException
,这将导致任务立即进入失败状态。
from airflow import AirflowException
ValueError
可用于失败和重试。
AirflowFailException
现在可以使任务失败而不重试
如果你想在不重试的情况下使任务失败,请使用 AirflowFailException
:-
示例:-
from airflow.exceptions import AirflowFailException
def task_to_fail():
raise AirflowFailException("Our api key is bad!")
如果您要重试,请使用 AirflowException
:-
示例:-
from airflow import AirflowException
def task_to_fail():
raise AirflowException("Error msj")
我有一个 python 可调用 process_csv_entries
来处理 csv 文件条目。我希望我的任务只有在所有条目都已成功处理后才能成功完成。否则任务应该失败
def process_csv_entries(csv_file):
# Boolean
file_completely_parsed = <call_to_module_to_parse_csv>
return not file_completely_parsed
CSV_FILE=<Sets path to csv file>
t1 = PythonOperator(dag=dag,
task_id='parse_csv_completely',
python_operator=process_csv_entries,
op_args=[CSV_FILE])
t1 似乎成功完成,无论返回值如何。 如何强制 PythonOperator 任务失败?
遇到错误条件时引发异常(在您的情况下:文件未成功解析时)
raise ValueError('File not parsed completely/correctly')
使用合适的消息提出相关错误类型
是的,提高 AirflowException
,这将导致任务立即进入失败状态。
from airflow import AirflowException
ValueError
可用于失败和重试。
AirflowFailException
现在可以使任务失败而不重试
如果你想在不重试的情况下使任务失败,请使用 AirflowFailException
:-
示例:-
from airflow.exceptions import AirflowFailException
def task_to_fail():
raise AirflowFailException("Our api key is bad!")
如果您要重试,请使用 AirflowException
:-
示例:-
from airflow import AirflowException
def task_to_fail():
raise AirflowException("Error msj")