- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我在使用 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 conf和 flower conf是不同的。
关于python - 使用 Supervisor 运行 Flower,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26985746/
我已经使用 Gunicorn + Nginx + Supervisor 部署了一个 Flask 应用程序。它不起作用。在线搜索发现了几个类似问题的报告,但没有一个有适合我们情况的解释或解决问题的修复程
一、简介 Supervisor 是一款 Python 开发的进程管理系统,允许用户监视和控制 Linux 上的进程,能将一个普通命令行进程变为后台守护进程,异常退出时能自动重启 详细介绍查阅:Supe
一, 简介 Dockerfile 运行只支持一条命令,当在Docker里要运行多条命令,用supervisor来管理就比较合适了。 Supervisor是一个 Python 开发的 client
我正在使用 Gunicorn 和 Nginx 与主管一起运行 django 项目。一切正常,但是当我对代码进行一些更改时,主管无法识别它,但它仍然读取旧代码。你能帮我么。我试图重新启动 supervi
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a software
我使用 erlang 作为服务之间的桥梁,我想知道人们对处理断开的连接有什么建议? 我正在从本地文件获取输入并将它们通过管道传输到 AMQP,可以想象 AMQP 代理可能会崩溃。对于这种情况,我想继续
我在哪里可以找到有关如何将动态子进程添加到现有主管的示例( simple_one_for_one 重启策略)? 最佳答案 我做了一些研究,以下是我所拥有的。 首先,这是一个主管的示例回调模块: -mo
我可以为不同的 django-celery 项目使用不同的 supervisor.conf 文件吗? 我在项目本身中为他们两个创建了单独的主管,但主管只与一个一起工作。有什么办法可以分别为它们保存配置
我已经看到了将SupervisorJob传递给CoroutineScope的教程,以避免在子例程之一失败时所有协程作业被取消。 在run3中,我认为将SupervisorJob传递给launch可以获
如何为使用系统上下文创建的两个参与者设置两个不同的主管策略: val exporter = system.actorOf(Props[DataExporter], name = "dataExport
以下是每 2 秒运行 supervisorctl status 的状态预览: [root@docker] ~ # supervisorctl status nginx
编辑:显然脚本确实运行了,但它只是没有启动我的浏览器。仍然不知道为什么。 我正在尝试使用 supervisor 来运行命令/脚本,但我似乎无法让它工作。 我得到了 Pi_Video_looper 的想
我必须运行 laravel 命令 php artisan queue:work --daemon 来运行存储在 Beanstalkd 队列中的作业。 我遇到了两种可能的解决方案: 使用 Supervi
如果我从 apt-get 安装 supervisor 我得到版本 3.0b2-1 如果我运行 sudo service supervisor status 我得到 is running(旧的测试版工作
我正在尝试在主管 (http://supervisord.org/) 的监督下运行流程。 我有两个运行几乎相同环境的环境(Ubuntu 12.04 LTS)。 目前的问题是我尝试在Supervisor
我正在尝试进行自动部署,包括 supervisord 和默认设置路径混淆。 我发现的每个部署方案都使用 /etc/supervisor/supervisor.conf 和 /etc/superviso
Supervisor执行的命令中如何导出环境变量?我第一次尝试: command="export SITE=domain1; python manage.py command" 但主管报告“找不到命令
Docker容器在启动的时候开启单个进程,比如,一个 ssh 或者 apache 的 daemon 服务。 但我们经常需要在一个机器上开启多个服务,这可以有很多方法,最简单的就是把多个启动命令放到
我已经安装并配置了 supervisor。 ps -ax 显示 10 个进程,例如:php/home/vagrant/Sites/mysite/artisan queue:work --tries=1
有人可以解释 Elixir 中的 Supervisor 和 DynamicSupervisor 之间的区别吗? 最佳答案 A DynamicSupervisor is a supervisor des
我是一名优秀的程序员,十分优秀!