Airflow DAG 成功回调
Airflow DAG success callback
有没有一种优雅的方式来定义DAG成功事件的回调?
我真的不想设置一个任务,该任务将在 on_sucess_callback.
所有其他任务的上游
谢谢!
创建任务并以编程方式设置上游,这样您就不会忘记添加一个,只要在文件最后完成即可。
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)
所以如果我理解正确的话,你的 DAG 的最后一步是,如果成功的话,回调到其他系统。所以我鼓励您完全按照这种方式对 DAG 建模。
您为什么要尝试从 DAG 的逻辑中隐藏该部分?这正是 up/downstream 建模的目的。为了图形的美观而隐藏部分 DAG 逻辑对我来说听起来像是一个糟糕的权衡。
我不鼓励您将回调任务设置为 all 任务的下游,它应该仅是 final 任务的下游DAG.
不知道它现在对您有多大帮助,但您正在寻找的功能存在于 Airflow 1.10 中...
一个 DAG 有一个 on_success_callback
有没有一种优雅的方式来定义DAG成功事件的回调? 我真的不想设置一个任务,该任务将在 on_sucess_callback.
所有其他任务的上游谢谢!
创建任务并以编程方式设置上游,这样您就不会忘记添加一个,只要在文件最后完成即可。
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)
所以如果我理解正确的话,你的 DAG 的最后一步是,如果成功的话,回调到其他系统。所以我鼓励您完全按照这种方式对 DAG 建模。
您为什么要尝试从 DAG 的逻辑中隐藏该部分?这正是 up/downstream 建模的目的。为了图形的美观而隐藏部分 DAG 逻辑对我来说听起来像是一个糟糕的权衡。
我不鼓励您将回调任务设置为 all 任务的下游,它应该仅是 final 任务的下游DAG.
不知道它现在对您有多大帮助,但您正在寻找的功能存在于 Airflow 1.10 中... 一个 DAG 有一个 on_success_callback