您如何在芹菜中为每个工人创建多个队列?

时间:2019-11-29 08:15:26

标签: rabbitmq celery

我想要的:

我想要一个芹菜工人(如果重要,--concurrency是2)在RabbitMQ中消耗2个队列中的任务。我读过某处RabbitMQ队列是单线程的地方,我认为创建2个队列可能会加快速度。 记录下来,我只有一项任务。所以基本上我想有两个相同的队列,而不是一个。

我尝试过的事情:

celery_config.py

task_queues = (
    Queue('celery', Exchange('celery')),
    Queue('test', Exchange('celery')),
)
task_routes = ([
    ('app.tasks.get_result', {'queue': 'test'}),
],)

以及其中的一些变化,例如使用相同的路由键,或者仅进行平坦处理,即可在task_routes中为同一任务创建两条路由。

我得到的:

无论我尝试了什么,所有任务都进入celery队列。即使我在禁用默认队列(-Q test)的情况下启动celery,它也会 still 堆积默认队列(celery)中的任务。另一个队列一直闲着。

所以问题是:是否可以为只有一个任务的每个工作人员创建多个队列?如果是,怎么办?

0 个答案:

没有答案
相关问题