如何为pcelery控制每个任务的并发性?

2024-05-07 16:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我能更精细地控制每个任务中芹菜工人的数量吗?我正在运行金字塔应用程序并使用pceleryd进行异步。你知道吗

从ini文件:

CELERY_IMPORTS = ('learning.workers.matrix_task',
                  'learning.workers.pipeline',
                  'learning.workers.classification_task',
                  'learning.workers.metric')
CELERYD_CONCURRENCY = 6

从learning.workers.matrix\u任务你知道吗

from celery import Task
class BuildTrainingMatrixTask(Task):
 ....
class BuildTestMatrixTask(Task):
 ....

我希望一次最多运行6个BuildTestMatrixTask任务。但我只想一次运行一个BuiltTrainingMatrix任务。有办法做到这一点吗?你知道吗


Tags: 文件应用程序task数量matrixiniclasscelery
1条回答
网友
1楼 · 发布于 2024-05-07 16:34:47

您可以根据其类型将任务发送到不同的队列,即将BuildTrainingMatrixTask发送到第一个队列(将其命名为“training\u matrix”),并将BuildTestMatrixTask发送到第二个队列(test\u matrix)。详见Routing Tasks。然后,您应该为每个具有理想并发性的队列启动一个worker:

$ celery worker  queues 'test_matrix'  concurrency=6
$ celery worker  queues 'training_matrix'  concurrency=1

相关问题 更多 >