Запуск цветка с помощью Supervisor

У меня проблемы с запуском цветка с помощью супервайзера.

Следующая команда в моей среде разработки работает на консоли

celery --app=celery_conf.celeryapp flower --conf=flowerconfig

но переходя к производству, чтобы использовать супервизор, я получаю всевозможные ошибки

/supervisor/conf.d/flower.conf

[program:flower]
command=/opt/apps/venv/my_app/bin/celery flower --app=celery_conf.celeryapp --conf=flowerconfig
directory=/opt/apps/my_app
user=www-data
autostart=true
autorestart=false
redirect_stderr=true
stderr_logfile=/var/log/celery/flower.err.log
stdout_logfile=/var/log/celery/flower.out.log

С приведенной выше конфигурацией ошибки нет, но все, что делает сельдерей, - это помогает мне в выводе. Как будто он не признает переданные переменные.

 Type 'celery <command> --help' for help using a specific command.
 Usage: celery <command> [options]
 Show help screen and exit.
 Options:
   -A APP, --app=APP     app instance to use (e.g. module.attr_name)
   -b BROKER, --broker=BROKER
                         url to broker.  default is 'amqp://guest@localhost//'
   --loader=LOADER       name of custom loader class to use.
   etc..
   etc..
   etc...

Супервайзер, с другой стороны, бросает INFO exited: flower (exit status 64; not expected)

У меня есть другие приложения, инициированные руководителем, использующие celery_beat и использующие образцы файлов конфигурации github, и они хорошо работают с теми же путями к каталогам, что и выше.

Конфигурация цветка выглядит следующим образом:

flowerconfig.py

# Broker settings
BROKER_URL = 'amqp://guest:guest@localhost:5672//'

# RabbitMQ management api
broker_api = 'http://guest:guest@localhost:15672/api/'

#Port
port = 5555

# Enable debug logging
logging = 'INFO'

Решение:

Ну, на самом деле это не решение, поэтому я не назвал это ответом. Оказалось, что была проблема с моей виртуальной средой. Поэтому я удалил цветок и снова установил его, используя pip3.4, как на python3.4.

Однако следует отметить, что для того, чтобы цветок мог использовать ваш файл flowerconfig, вам необходимо добавить запись director=/path/to/your/celery_config/folder/ в файл /etc/supervisor/conf.d/flower.conf супервизора, иначе цветок запустится с настройками по умолчанию.

/etc/supervisor/conf.d/flower.conf

; ==================================
;  Flower: For monitoring Celery
; ==================================
[program:flower]
command=/opt/apps/venv/my_app/bin/celery flower --app=celery_conf.celeryapp --conf=flowerconfig
directory=/opt/apps/my_app/celery_conf #this is key as my configuration file was in the `celery_conf` folder
user=www-data
autostart=true
autorestart=false
redirect_stderr=true
stderr_logfile=/var/log/celery/flower.err.log
stdout_logfile=/var/log/celery/flower.out.log

Спасибо.


person lukik    schedule 18.11.2014    source источник


Ответы (1)


Ваш руководитель не может найти celeryapp. Мой файл конфигурации supervisor.conf вашего супервайзера находится по другому пути.

Вы можете передать параметр directory процессу супервизора. Итак, вы можете попробовать

[program:flower]
directory = /opt/apps/venv/my_app/
command =  celery --app=celery_conf.celeryapp flower

Это запускает новый экземпляр цветка.

Также обратите внимание на конфигурацию сельдерея и flower conf отличаются.

person ChillarAnand    schedule 18.11.2014
comment
Похоже, вы ответили, когда я редактировал вопрос. Я думаю, что исправил ошибки пути. Теперь все, что я получаю, это help like вывод из сельдерея с новой конфигурацией. Обратите внимание, что у меня есть два каталога opt/apps/venv/my_app, который является виртуальной средой для приложения, а также /opt/apps/my_app, где находится приложение. - person lukik; 18.11.2014
comment
ваша команда правильно работает в командной строке? что у вас есть в вашем flowerconfig? - person ChillarAnand; 18.11.2014
comment
Да, это работает нормально. В flowerconfig есть базовые настройки. Я добавил настройки в вопрос. - person lukik; 18.11.2014
comment
Оказалось, что возникла проблема с установкой виртуальной среды. Я разместил окончательный рабочий файл конфигурации - person lukik; 18.11.2014
comment
Где я могу найти файл flowerconfig.py? - person Albin Antony; 07.03.2019
comment
@AlbinAntony Вы должны создать его. - person ChillarAnand; 07.03.2019