有没有办法在不进行多任务处理的情况下按顺序运行回填?例如,如果我运行带有几个日期的回填,例如 气流回填[dag] -s" 2017-07-01" -e" 2017-07-10",有没有办法在跑到第二天之前完成每一个dag?现在它在完成每项任务的所有日子之前完成下一个任务。
感谢。
答案 0 :(得分:1)
您可以将DAG的max_active_runs
参数设置为1,这样可以确保只为该dag运行一个DAG,同时进行调度。 https://pythonhosted.org/airflow/code.html?highlight=concurrency#models
如果您需要在继续前进之前完成整个dag,可以在DAG的开头添加ExternalTaskSensor
,最后添加DummyOperator
收集任务。然后在上一次运行结束时将ExternalTaskSensor设置为在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)