如何在队列

时间:2015-05-13 11:22:06

标签: python concurrency celery

在具有8个核心的环境中,芹菜应该能够默认并行处理8个传入任务。但有时候,当收到新任务时,芹菜将它们置于长期运行的过程中。

我使用默认配置,让一个工作人员从一个队列中消耗。

celery -A proj worker --loglevel=INFO --concurrency=8

我的理解是错误的,一个并发度为8的工人能够并行处理一个队列中的8个任务吗?

如何设置芹菜来防止上述行为的首选方法?

1 个答案:

答案 0 :(得分:3)

简单地说,并发性就是在工作者上运行的作业数量。预取是工作人员自己在队列中的作业数。您有2个选项中的1个。第一种方法是将预取乘数设置为1.这意味着工作人员只会在其队列中保留8个额外的作业。我建议的第二个是为你的短期任务创建两个不同的队列,为你的长期任务创建另一个队列。