2014-09-30 20 views
0

我在AWS c3.xlarge(4核心机器)上运行多个芹菜工作进程。有一个“批处理”工作进程,其--concurrency参数设置为2,“优先级”进程及其--concurrency参数设置为1.两个工作进程都从相同的优先级队列中提取。我正在使用Mongo作为我的经纪人。当我将多个作业提交到优先级队列时,即使有多个工作人员可以依次处理它们,但它们会依次处理。所有项目都由“优先级”进程处理,但如果我停止“优先级”进程,“批处理”进程将处理所有内容(仍然是连续的)。我可以怎样配置不正确,阻止芹菜异步处理作业?为什么我的芹菜工作人员会连续处理所有东西?

编辑:事实证明,同步瓶颈是在服务器提交作业,而不是在芹菜。

+0

你的意思是这些任务不公平地派给工人吗? – Pierre 2014-09-30 09:59:40

+0

是的。但是,并不仅仅是一些工人比其他工人获得更多的工作。所有这些任务都被分配给一个单独的工作流程,即使它很繁忙,其他工作人员也可以处理它们。我注意到这台机器上的内存非常低,所以我目前正在研究这是否是问题所在。 – 2014-09-30 10:39:49

回答

0

默认情况下,工作人员将预取4 * concurrency number任务执行,这意味着您的第一个正在运行的工作人员预取4个任务,所以如果您排队等待4个或更少的任务,它们将全部由该工作人员单独处理, t是队列中的任何其他消息被第二个工作人员消费。

您应该将CELERYD_PREFETCH_MULTIPLIER设置为最适合您的编号,我之前遇到过此问题,并将此选项设置为1,现在我的所有任务都被工作人员相当耗费。

相关问题