Python 如何对气流工人执行普通芹菜任务

Python 如何对气流工人执行普通芹菜任务,python,flask,celery,airflow,Python,Flask,Celery,Airflow,我目前已经设置了气流,并使用CeleryExecutor作为后端正确工作,以提供水平缩放。这非常有效,尤其是当工作节点位于EC2上的自动缩放组中时 除了气流,我还使用普通芹菜来处理来自Flask/Python的简单异步任务(不需要整个管道)。到目前为止,这些普通芹菜的任务量非常小,我只是在和烧瓶相同的机器上运行普通芹菜工人。现在需要在系统中运行大量的普通芹菜任务,所以我也需要扩展我的普通芹菜 一种方法是在Airflow worker服务器上运行普通芹菜worker服务(从自动缩放等中获益),但这

我目前已经设置了气流,并使用CeleryExecutor作为后端正确工作,以提供水平缩放。这非常有效,尤其是当工作节点位于EC2上的自动缩放组中时

除了气流,我还使用普通芹菜来处理来自Flask/Python的简单异步任务(不需要整个管道)。到目前为止,这些普通芹菜的任务量非常小,我只是在和烧瓶相同的机器上运行普通芹菜工人。现在需要在系统中运行大量的普通芹菜任务,所以我也需要扩展我的普通芹菜

一种方法是在Airflow worker服务器上运行普通芹菜worker服务(从自动缩放等中获益),但这似乎不是一个优雅的解决方案,因为它在同一台机器上创建了两种不同的“类型”芹菜worker。我的问题是,我是否可以将一些配置设置组合传递到我的普通芹菜应用程序,从而使@Celery.task修饰的功能作为普通芹菜任务直接在我的Airflow worker群集上执行,完全绕过Airflow中间件


谢谢你的帮助。

如果我记得清楚的话,这个应用程序是
aiffort.executors.cellery\u executor.app。请尝试
芹菜-A aiffort.executors.芹菜\u executor.app inspect active
以获取当前气流基础设施中的示例,以测试它。但是,我建议您不要这样做,因为芹菜任务可能会影响气流DAG的执行,并且可能会影响SLA


我们在我工作的公司所做的正是你所建议的——我们维护一个大型芹菜集群,有时我们会将一些气流任务的执行转移到芹菜集群,具体取决于用例。当我们的气流DAG中的一个任务实际上触发了成千上万个小作业时,这尤其方便。我们的芹菜集群在繁忙的一天中运行800万个任务。

如果我记得清楚的话,该应用程序是
aiffort.executors.celerry\u executor.app
。请尝试
芹菜-A aiffort.executors.芹菜\u executor.app inspect active
以获取当前气流基础设施中的示例,以测试它。但是,我建议您不要这样做,因为芹菜任务可能会影响气流DAG的执行,并且可能会影响SLA


我们在我工作的公司所做的正是你所建议的——我们维护一个大型芹菜集群,有时我们会将一些气流任务的执行转移到芹菜集群,具体取决于用例。当我们的气流DAG中的一个任务实际上触发了成千上万个小作业时,这尤其方便。我们的芹菜集群在繁忙的一天运行800万个任务。

感谢您的回复。如果第一种方式,你能详细说明芹菜任务会如何影响气流DAG吗?这是因为它们给服务器增加了额外的负载,还是因为它们通过了气流基础设施?另外,当你们说你们按照我的建议去做的时候,你们的意思是在一个节点上运行两种口味的芹菜工人,还是每个节点都有不同类型的节点?因为你们可能会占用所有可用的工人进程。那些重要的会等待,可能会错过SLA。感谢您的回复。如果第一种方式,你能详细说明芹菜任务会如何影响气流DAG吗?这是因为它们给服务器增加了额外的负载,还是因为它们通过了气流基础设施?另外,当你们说你们按照我的建议去做的时候,你们的意思是在一个节点上运行两种口味的芹菜工人,还是每个节点都有不同类型的节点?因为你们可能会占用所有可用的工人进程。而那些重要的将等待,并可能错过SLA。