gpt4 book ai didi

python - 使用 Supervisor 运行 Flower

转载 作者:太空狗 更新时间:2023-10-30 00:17:19 28 4
gpt4 key购买 nike

我在使用 supervisor 启动 flower 时遇到了挑战。

我的开发环境中的以下命令在控制台上运行

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

但是转向生产环境使用 supervisor 时出现了各种各样的错误

/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 启动应用程序并使用 configuration file samples on github并且它们在与上面相同的目录路径下运行良好

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'

解决方案:

嗯,这不是真正的解决方案,所以我没有把它作为答案。原来我的虚拟环境有问题。所以我删除了 flower 并像在 python3.4 上一样使用 pip3.4 再次安装

但要注意的是,要让 flower 使用您的 flowerconfig 文件,您需要添加一个 director=/path/to/your/celery_config/folder/ 条目在主管的 /etc/supervisor/conf.d/flower.conf 文件中,否则 flower 将以默认设置启动。

/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

谢谢。

最佳答案

您的主管无法找到 celeryapp。 My be your supervisor 配置文件 supervisor.conf 位于不同的路径中。

您可以将directory 选项传递给主管进程。所以你可以试试

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

这会启动一个新的花实例。

另请注意 celery confflower conf是不同的。

关于python - 使用 Supervisor 运行 Flower,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985746/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com