我正在使用celery-django在我的网站后端排队任务。 我正在尝试创建一个设置,其中我有两个名为“低”和“高”的队列和两个工作人员W1和W2。 我希望他们以下列方式使用队列中的任务:
W1< - low,high
W2< - high
通常可以这样做。
打开终端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,除非真的有必要(也许你可以就此建议我)。
答案 0 :(得分:11)
您可以使用CELERYD_OPTS
选项传递-Q参数,类似于Celery reference中的示例:
# 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
答案 1 :(得分:4)
您可以在CELERY_NODES中指定多个节点,并将节点名称传递给CELERYD_OPTS参数,例如:
((frameN % 12) >= 6)