更改Celery默认队列,未按预期正常工作

时间:2015-08-15 07:02:00

标签: python celery

我已经覆盖了芹菜默认队列。以下是提到的设置。

设置

BROKER_URL = "amqp://managedbrokerurl/username/"
CELERY_DEFAULT_QUEUE = 'project.env.default'
CELERY_ROUTES = {"app1.tasks.push_api_task": {"queue": "project.env.priority_queue"}}

python manage.py celery worker -n env_worker -Q project.env.default
python manage.py celery worker -n env_worker -Q project.env.priority_queue 

根据配置,我期望除app1.tasks.push_api_task之外的所有任务都应该进入队列project.env.default。 但是一些奇怪的问题正在发生,例如任务进入project.env.default队列以及celery队列(如果没有被覆盖则是默认队列)。

我检查了我们的代码库,我们没有使用celery队列进行任务发布。

如果你们遇到同样的问题,请帮忙。

Celery Queue Screen

2 个答案:

答案 0 :(得分:2)

我知道这是一个很晚的响应,但是如果人们仍然遇到此问题,则问题出在Celery的一些较早的文档上。在某些文档中错误地给出了变量CELERY_DEFAULT_QUEUE,该变量应为CELERY_TASK_DEFAULT_QUEUE

答案 1 :(得分:0)

  

工作者实例可以使用任意数量的队列。默认情况下   将使用CELERY_QUEUES设置中定义的所有队列   (如果未指定,则默认为名为celery的队列)

我认为你应该看到a section of celery docs

  

您还可以在同一台计算机上启动多个工作程序。如果你这样做   请务必通过指定为每个工作人员提供唯一的名称   带有--hostname | -n参数的主机名:

Source