Celery:每个任务的并发限制(每个任务的工作人员数量)?

Par*_*and 17 celery django-celery

是否可以在Celery的每个任务级别设置并发性(同时工作者数)?我正在寻找更细粒度的东西CELERYD_CONCURRENCY(设置整个守护进程的并发性).

使用场景是:我有一个celerlyd运行不同类型的任务具有非常不同的性能特征 - 一些是快速的,一些是非常慢的.对于一些人,我想尽可能快地尽可能多地做,对于其他人,我想确保在任何时候只有一个实例运行(即并发为1).

mhe*_*her 27

您可以使用自动路由将任务路由到不同的队列,这些队列将由具有不同并发级别的芹菜工作者处理.

celeryd-multi start fast slow -c:slow 3 -c:fast 5

此命令启动2个芹菜工作者,分别使用3和5个并发级别监听快速慢速队列.

CELERY_ROUTES = {"tasks.a":{"queue":"slow"},"tasks.b":{"queue":"fast"}}

类型为tasks.a的任务将分别由快速队列由队列和tasks.b任务处理.