celery - 使用主管运行花

  显示原文与译文双语对照的内容
0 0

我正在使用challanges启动。

我的开发环境中的以下命令适用于控制台

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

上面的配置没有错误,但是所有 celery 都给了我一个类似输出的帮助。 它就像它不承认传递的变量。

 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 启动了它的他的应用程序,并使用with上的配置文件示例,并且它们正常工作。

flowerconfig如下所示:

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

谢谢。

时间:原作者:1个回答

0 0

你的主管找不到 celeryapp 。 我是你的主管配置文件 supervisor.conf 在不同的路径下。

你可以将 directory 选项传递给管理员进程。 所以你可以尝试

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

这将开始一个新的花卉实例。

同时请注意,celery conf和花conf是不同的。

原作者:
...