繁体   English   中英

多个airflow调度器之间如何操作

[英]How to operate between multiple airflow schedulers

我是 Airflow 的新手。我正在考虑构建多个 airflow 调度程序(celeryexecutor)。

但是,我很好奇多个调度程序的操作

  1. 多个调度程序如何为元数据库中的序列化 dag 进行调度? 他们有什么规定吗? 谁违反了哪些规则?

  2. 是否有多个调度程序的负载平衡?

如果您回答这些问题,将会非常有帮助。 谢谢...

Airflow 没有提供神奇的解决方案来同步不同的调度器,没有负载平衡,但它进行批量调度以允许所有调度器协同工作来调度运行和任务实例。

Airflow 调度程序在无限循环中运行,在每个调度循环中,调度程序负责为max_dagruns_to_create_per_loop dags创建 dag 运行(只是在排队状态下创建 dag 运行),检查max_dagruns_per_loop_to_schedule dag 运行是否可以调度(排队 -> 调度)从执行日期较小的运行开始,并尝试安排max_tis_per_query任务实例(排队 - >计划)。

所有这些选定的对象(dags、runs 和 tis)都被调度程序锁定在 DB 中,并且它们对其他对象不可见,因此其他调度程序对其他对象执行相同的操作。

在 dag、dag 运行或任务实例数量较少的情况下,为这 3 个配置使用大值可能会导致调度由其中一个调度程序完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM