是否有一种优雅的方式来定义DAG成功事件的回调? 我真的不想设置一个任务,它将在on_sucess_callback的所有其他任务的上游。
谢谢!
答案 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