如何通过成功回调将气流任务的状态标记为失败?

时间:2019-04-11 02:57:53

标签: python airflow

是否可以通过“ on_success_callback”将任务标记为失败

用例:

任务执行并记录一些信息。

我在任务的“ on_success_callback”中处理这些日志,并基于日志,我想将任务的状态标记为失败。

我曾尝试在“ on_success_callback”中引发异常,但它仅记录“ on_success_callback”失败并将任务标记为成功。

这是我的气流任务的代码,
dag_utils是一个python文件,提供了task_callback的实现,在其中我处理了日志:

airflow_task = BashOperator(
    task_id='task1',
    bash_command = dag_utils.make_full_command(cmd),
    trigger_rule=TriggerRule.ALL_SUCCESS,
    on_failure_callback = dag_utils.task_callback,
    on_success_callback = dag_utils.task_callback,
    dag=dag
)

airflow_task = BashOperator( task_id='task1', bash_command = dag_utils.make_full_command(cmd), trigger_rule=TriggerRule.ALL_SUCCESS, on_failure_callback = dag_utils.task_callback, on_success_callback = dag_utils.task_callback, dag=dag )

1 个答案:

答案 0 :(得分:0)

能否通过“ on_success_callback”将任务标记为失败? =>否

因为它们是从任务获得状态后的回调。 Prefer Airflow Code here

为满足您的要求,我建议在task1的上游增加一个新任务,以处理task1输出的日志。通过此实现,您可以轻松地将其标记为失败或成功。