我想要的:
我想要一个芹菜工人(如果重要,--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
)中的任务。另一个队列一直闲着。
所以问题是:是否可以为只有一个任务的每个工作人员创建多个队列?如果是,怎么办?