【发布时间】:2014-11-24 15:17:43
【问题描述】:
我在 AWS c3.xlarge(4 核机器)上运行多个 celery 工作进程。有一个“批处理”工作进程,其 --concurrency 参数设置为 2,一个“优先级”进程,其--concurrency 参数设置为 1。两个工作进程都从同一个优先级队列中抽取。我使用 Mongo 作为我的经纪人。当我将多个作业提交到优先级队列时,即使有多个工作人员可用,它们也会一个接一个地连续处理。所有项目都由“优先”流程处理,但如果我停止“优先”流程,“批处理”流程将处理所有内容(仍然是串行的)。哪些配置不正确会阻止 celery 异步处理作业?
编辑:事实证明,同步瓶颈在于提交作业的服务器而不是 celery。
【问题讨论】:
-
你的意思是任务没有公平地分派给工人?
-
是的。然而,不仅仅是一些工人比其他工人获得更多的任务。所有任务都交给一个工作进程,即使它很忙并且其他工作人员可以处理它们。我注意到我在这台机器上的内存非常低,所以我目前正在调查这是否是问题所在。
标签: celery task-queue