Airflow DAG成功回调

时间:2018-01-09 08:35:15

标签: airflow apache-airflow

是否有一种优雅的方式来定义DAG成功事件的回调? 我真的不想设置一个任务,它将在on_sucess_callback的所有其他任务的上游。

谢谢!

3 个答案:

答案 0 :(得分:3)

因此,如果我理解正确,DAG的最后一步是在成功的情况下回拨给其他系统。因此,我鼓励您按照这种方式对DAG进行建模。

为什么要尝试将该部分隐藏在DAG的逻辑中?这正是上/下游建模的目的。为了图形的美学而隐藏DAG逻辑的一部分听起来像是对我不好的权衡。

我不鼓励您将回调任务设置为所有任务的下游任务,它应仅位于DAG中最终任务的下游。

答案 1 :(得分:1)

创建任务并以编程方式设置上游,这样你就不会忘记添加一个,只要在文件的最后一次完成。

for task in dag.tasks:
    final_task.set_upstream(task)
# Only run if all the other tasks succeeded. EDIT: This is the default
final_task.trigger_rule = 'all_success'
dag.add_task(final_task)

答案 2 :(得分:1)

现在不知道它对您有多少帮助,但是您正在寻找的功能已存在于Airflow 1.10中... DAG具有on_success_callback

https://airflow.apache.org/code.html#airflow.models.DAG