Python 如何在超过10万个任务的情况下运行Airflow dag?

Python 如何在超过10万个任务的情况下运行Airflow dag?,python,python-3.x,airflow,airflow-scheduler,Python,Python 3.x,Airflow,Airflow Scheduler,我有一个气流DAG,有超过100000个任务。 我最多只能运行1000个任务。除此之外,调度器挂起,Web服务器无法呈现任务,在UI上速度非常慢 我尝试增加,min\u file\u process\u interval和processor\u poll\u intervalconfig参数 我已将num\u duration设置为3600,以便调度器每小时重新启动一次 我对Web服务器或调度程序有什么限制吗?一般来说,如何处理气流中的大量任务?任何配置设置等都会非常有用 另外,我是否应该在这个

我有一个气流DAG,有超过100000个任务。 我最多只能运行1000个任务。除此之外,调度器挂起,Web服务器无法呈现任务,在UI上速度非常慢

我尝试增加,
min\u file\u process\u interval
processor\u poll\u interval
config参数

我已将
num\u duration
设置为3600,以便调度器每小时重新启动一次

我对Web服务器或调度程序有什么限制吗?一般来说,如何处理气流中的大量任务?任何配置设置等都会非常有用

另外,我是否应该在这个比例下使用subdag操作符?请给我一些建议


谢谢,

我能够运行超过165000个气流任务

但有一个陷阱。并非所有任务都是在单个Dag中计划和渲染的

当我试图安排越来越多的任务时,我面临的问题是调度器和Web服务器。 随着越来越多的任务被调度,调度器和Web服务器上的内存和cpu消耗急剧增加(这是显而易见的,也是有意义的)。它达到了节点无法再处理它的程度(调度程序使用超过80GB的内存处理16000多个任务)

我将单个dag拆分为2个dag。一个是领导者/大师。第二个是工人达格

我有一个airflow变量,表示一次要处理多少任务(例如,
num\u tasks=10000
)。由于我有超过165000个任务,工人dag将分17批一次处理10k个任务

领导dag,它所做的只是使用不同的10k任务集反复触发同一个工作dag,并监视工作dag的运行状态。第一个触发器操作符为第一组10k任务触发辅助dag,并一直等待,直到辅助dag完成。一旦完成,它将触发下一批10k任务的同一个工作dag,以此类推

这样,工作dag将继续被重用,并且不必计划超过X个
num\u任务

底线是,计算出气流设置可以处理的任务的最大数量。然后以领导/员工的方式反复启动DAG以执行
max_任务
,直到所有任务完成


希望这对您有所帮助。

您能分享您的日程安排配置吗?它有多少个CPU?您的AIRFLOW\uuu SCHEDULER\uuuu MAX\u线程配置是什么?