如何在气流重启时禁用自动启动所有任务?

时间:2018-05-02 11:47:15

标签: celery airflow

我们遇到了问题。当我们重新启动气流时 - 我们所有的任务都会在此时开始重载我们的服务器。如何在气流重启时阻止启动所有任务?

任务示例:

    default_args = {
     'owner': 'airflow',
     'depends_on_past': False,
     'start_date': datetime(2018, 5, 2),
     'email': ['test@test.com'],
     'email_on_failure': True,
     'email_on_retry': True,
     'retries': 1,
     'retry_delay': timedelta(minutes=5),
     'catchup': False

 }

 dag = DAG(
     'start_data_collect', default_args=default_args, schedule_interval=timedelta(minutes=10))

 t1 = BashOperator(
     task_id='print_date',
     bash_command='date',
     dag=dag)

2 个答案:

答案 0 :(得分:0)

如果您的服务器负担沉重,那是因为您的工作人员可以轻松地连接和查询/使用它们。我建议下一次,在重新启动Airflow之前,使用与服务器可能超载的连接查看所有dag,并将它们的任务配置为每个使用一个池,可能每个服务器或每个连接使用一个池。您还需要在具有插槽的UI中创建池。但是v1.9及更高版本中有一个修补程序,可以自动创建具有0个插槽的池,因此您可以使用UI进入并向每个插槽添加一些插槽。这样,即使调度程序可以调度许多可用任务,也不会调度更多的插槽中可以容纳的任务数量。

答案 1 :(得分:0)

如果您在 UI 中将状态切换为“关闭”,它应该会停止您的 DAG。如果您希望默认禁用新的 DAG,您可以更新气流配置中 [core] 下的 set dags_are_paused_at_creation = True。