airflow multi scheduler

支持版本

需要Airflow2.0以上

额外配置

应该是不需要任何的额外配置,在helm里面能看到
在这里插入图片描述

都是直接在deployment里面填replica数量

实现方式

多个scheduler实例主要矛盾点在如何通讯上面,airflow2用的是Mysql的行锁。同时只会有一个scheduler处理一个dag。

具体代码

jobs/scheduler_job.py

_do_scheduling() {
	self._create_dagruns_for_dags() #从dag生成dagrun
}

_create_dagruns_for_dags() {
	DagModel.dags_needing_dagruns(session)
}

models/dag.py

with_row_locks(query, of=cls, session=session, **skip_locked(session=session))

主要就是with_row_locks函数
在这里插入图片描述

这里需要注意需要在airflow.cfg里面把这个配置设置成True,并且airflow的数据库版本需要支持FOR UPDATE
在这里插入图片描述

启动

如果这些都符合条件的话,应该就直接可以启动多个scheduler实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值