气流 - 回填

时间:2017-07-25 08:45:40

标签: python python-2.7 airflow apache-airflow

有没有办法在不进行多任务处理的情况下按顺序运行回填?例如,如果我运行带有几个日期的回填,例如 气流回填[dag] -s" 2017-07-01" -e" 2017-07-10",有没有办法在跑到第二天之前完成每一个dag?现在它在完成每项任务的所有日子之前完成下一个任务。

感谢。

1 个答案:

答案 0 :(得分:1)

您可以将DAG的max_active_runs参数设置为1,这样可以确保只为该dag运行一个DAG,同时进行调度。 https://pythonhosted.org/airflow/code.html?highlight=concurrency#models

如果您需要在继续前进之前完成整个dag,可以在DAG的开头添加ExternalTaskSensor,最后添加DummyOperator收集任务。然后在上一次运行结束时将ExternalTask​​Sensor设置为在DummyOperator上触发。

dag = DAG(dag_id='dag')

wait_for_previous_operator = ExternalTaskSensor(\
        task_id='wait_for_previous',
        external_dag_id='dag',
        external_task_id='collection',
        execution_delta=schedule_interval,
        dag=dag)

collection_operator = DummyOperator(\
        task_id='collection',
        dag=dag)


wait_for_previous_operator.set_downstream(your_other_tasks_list)
collection_operator.set_upstream(your_other_tasks_list)