我可以对每个任务运行的芹菜工人的数量进行更精细的控制吗?我正在运行金字塔应用程序,并使用pceleryd进行异步。
从ini文件:
CELERY_IMPORTS = ('learning.workers.matrix_task',
'learning.workers.pipeline',
'learning.workers.classification_task',
'learning.workers.metric')
CELERYD_CONCURRENCY = 6来自learning.workers.matrix_task
from celery import Task
class BuildTrainingMatrixTask(Task):
....
class BuildTestMatrixTask(Task):
....我希望同时运行最多6个BuildTestMatrixTask任务。但我希望一次只运行一个BuiltTrainingMatrixTask。有没有办法做到这一点?
发布于 2014-02-25 17:09:27
您可以根据类型将任务发送到不同的队列,即BuildTrainingMatrixTask到第一个队列(让它命名为'training_matrix')和BuildTestMatrixTask到第二个队列(test_matrix)。详情请参见Routing Tasks。然后,您应该为每个具有理想并发性的队列启动一个worker:
$ celery worker --queues 'test_matrix' --concurrency=6
$ celery worker --queues 'training_matrix' --concurrency=1https://stackoverflow.com/questions/21924447
复制相似问题