2016-05-12 6 views
1

У меня есть сеть серверов и рабочих Celery, которые будут использоваться для задачи ввода-вывода большого объема. Есть две очереди: default и backlog, и каждый сервер имеет пять рабочих. Все серверы демонанизированы с конфигурацией, подобной документации init script config.Множественная очередь для демона сельдерея

Что я хотел бы сделать для одного сервера, у нас есть три сотрудника для default и два для backlog. Можно ли это сделать с помощью конфигурации демона?

+0

Посмотрите на [ 'queues'] (http://docs.celeryproject.org/en/latest/userguide/workers.html#queues) –

+0

я уже очереди настроить. Я просто хочу их демонировать, чтобы две очереди могли работать на одном сервере с помощью сценария инициализации. – Jason

ответ

1

Посмотрите here в этой части Whare он показывает пример конфигурации он также говорит:

# Names of nodes to start 
# most people will only start one node: 
CELERYD_NODES="worker1" 
# but you can also start multiple and configure settings 
# for each in CELERYD_OPTS (see `celery multi --help` for examples): 

Так как вы можете видеть, можно иметь celeryd начиная несколько узлов, и вы можете настроить каждый из них с помощью CELERYD_OPTS, поэтому вы можете установить разные очереди для каждого из них.

Here вы нашли еще один более полный пример сельдерея multi, я размещаю здесь небольшой экстракт.

# 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 
+0

Интересная находка. Я уже определил рабочих специально в 'CELERYD_NODES', но остальное я не знал. – Jason

+0

В основном добавьте в CELERYD_OPTS аргументы, принятые celery multi, как «-l INFO -Q: 1-3 изображения, видео -Q: 4,5 данных -Q по умолчанию -L: 4,5 DEBUG» от курса не забывайте добавить несколько рабочих имен в CELERY_NODES –