6

我正在使用 celery-django 在我的站点后端对任务进行排队。我正在尝试创建一个设置,其中有两个名为“low”和“high”的队列以及两个工人 W1 和 W2。我希望他们通过以下方式使用队列中的任务:

W1 <-- 低,高

W2 <-- 高

通常可以这样做。

打开终端 1 并输入 $celery worker -n W1 -Q low,high

打开终端 2 并输入 $celery worker -n W2 -Q high

但是我试图通过celeryd daemon做同样的事情。

我正在按照链接中给出的步骤操作: http: //celery.readthedocs.org/en/latest/tutorials/daemonizing.html#example-configuration 但是可用的选项似乎不足以满足要求。

请帮助我一些我不知道的配置可以使它成为可能。除非真的有必要,否则我宁愿不运行多个守护进程或使用其他工具(如 supervisord)(也许你也可以就此向我提出建议)。

4

2 回答 2

11

您可以使用CELERYD_OPTS选项传递 -Q 参数,类似于Celery 参考中的示例:

# Advanced example starting 10 workers in the background:
#   * Three of the workers processes the images and video queue
#   * Two of the workers processes the data queue with loglevel DEBUG
#   * the rest processes the default' queue.
$ celery multi start 10 -l INFO -Q:1-3 images,video -Q:4,5 data
    -Q default -L:4,5 DEBUG

# You can show the commands necessary to start the workers with
# the 'show' command:
$ celery multi show 10 -l INFO -Q:1-3 images,video -Q:4,5 data
    -Q default -L:4,5 DEBUG
于 2014-04-15T20:03:36.383 回答
4

您可以在 CELERY_NODES 中指定多个节点并将节点名称传递给 CELERYD_OPTS 参数,例如:

CELERY_NODES="W1 W2"
CELERYD_OPTS="-Q:W1 low,high -Q:W2 high"
于 2016-05-26T20:38:25.457 回答