首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为pcelery控制每个任务的并发性?

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

Stack Overflow用户
提问于 2014-02-21 11:00:20
回答 1查看 130关注 0票数 0

我可以对每个任务运行的芹菜工人的数量进行更精细的控制吗?我正在运行金字塔应用程序,并使用pceleryd进行异步。

从ini文件:

代码语言:javascript
运行
复制
CELERY_IMPORTS = ('learning.workers.matrix_task',
                  'learning.workers.pipeline',
                  'learning.workers.classification_task',
                  'learning.workers.metric')
CELERYD_CONCURRENCY = 6

来自learning.workers.matrix_task

代码语言:javascript
运行
复制
from celery import Task
class BuildTrainingMatrixTask(Task):
 ....
class BuildTestMatrixTask(Task):
 ....

我希望同时运行最多6个BuildTestMatrixTask任务。但我希望一次只运行一个BuiltTrainingMatrixTask。有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2014-02-25 17:09:27

您可以根据类型将任务发送到不同的队列,即BuildTrainingMatrixTask到第一个队列(让它命名为'training_matrix')和BuildTestMatrixTask到第二个队列(test_matrix)。详情请参见Routing Tasks。然后,您应该为每个具有理想并发性的队列启动一个worker:

代码语言:javascript
运行
复制
$ celery worker --queues 'test_matrix' --concurrency=6
$ celery worker --queues 'training_matrix' --concurrency=1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21924447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档