Celery multi не работает должным образом

У меня есть структура папок моего проекта

api
    -- __init__.py
    --jobs/
        -- __init__.py
        -- celery.py
        -- celeyconfig.py
        -- tasks.py
    --api_helpers/
    --views/

tasks есть задача под названием ExamineColumns

Запускаю воркер с помощью celery worker -A api.jobs --loglevel=Info

Он отлично работает, и я могу запускать задачи.

Это наша команда проверки сельдерея

$ celery inspect registered
-> ranjith-ThinkPad-T420: OK
    * ExamineColumns
    * celery.backend_cleanup
    * celery.chain
    * celery.chord
    * celery.chord_unlock
    * celery.chunks
    * celery.group
    * celery.map
    * celery.starmap

Но когда я пробую мультирежим, он просто не работает. Я пытаюсь бежать, бегая

celery multi start w1 -c3 -A api.jobs  --loglevel=Info

Но вообще не запускается.

$ celery inspect registered
Error: No nodes replied within time constraint.

Я не уверен, почему это не работает


person Ranjith Ramachandra    schedule 04.07.2013    source источник


Ответы (1)


Вы можете попробовать запустить как:

/usr/bin/celery multi start w1 w2 --uid=www --loglevel=INFO --pidfile=/var/run/%n.pid --logfile=/var/log/%n.log --quiet

--uid должен быть пользователем/группой с вашего сервера. Не рекомендуется использовать root

--quiet не будет выводить данные на консоль

%n.log заменит себя на w1.log и w2.log


Для проверки вы можете использовать ps uax | grep celery Результат будет таким:

www ... /usr/local/bin/python2.7 -m celery.bin.celeryd -n w1.domain.ru --loglevel=DEBUG --logfile=/var/log/w1.log --pidfile=/var/run/w1.pid
www ... /usr/local/bin/python2.7 -m celery.bin.celeryd -n w2.domain.ru --loglevel=DEBUG --logfile=/var/log/w2.log --pidfile=/var/run/w2.pid
person Abbasov Alexander    schedule 05.07.2013
comment
Как передать аргумент --app. Просто добавить к команде? - person Ranjith Ramachandra; 08.07.2013
comment
Кажется, я не знал о --app argument Но если вы хотите запустить сельдерей для своего проекта, вы должны запускать его из папки, содержащей файл конфигурации сельдерея. В конфигурации сельдерея должна быть опция CELERY_IMPORTS=("path_to_app.tasks",) См. docs.celeryproject .org/en/latest/ - person Abbasov Alexander; 08.07.2013
comment
Можно ли запустить команду multi start не как демон? - person tzenderman; 22.10.2013
comment
@tzenderman Да, но кажется, я тебя не понял. Пожалуйста, дайте мне более подробную информацию о вашей задаче. - person Abbasov Alexander; 26.10.2013
comment
@AbbasovAlexander Итак, я запускаю сельдерей с помощью supervisord. Мне не удалось найти способ запустить celery multi start без демонизации процесса. Для корректной работы с supervisord процесс не может быть запущен как демон. - person tzenderman; 28.10.2013