python3使用Supervisor部署celery到服务器

原创 497阅读 · 时间2019年3月20日 13:53

python3中使用Supervisor部署celery到服务器

celery相关的可以查看前两篇文章。
Django中怎么使用celery?
django中第二种使用celery并后台运行的方法

开始今天的正题

一,安装Supervisor

pip install supervisor

supervisor仅支持python2环境下安装,python3目前不可以使用。

二,安装celery,并配置celery相关内容

见:Django中怎么使用celery?
django中第二种使用celery并后台运行的方法

三,对supervisor进行配置

  1. 生成默认配置文件

cd /etc/   # 切换到etc目录
mkdir supervisor   # 在etc下创建文件夹
echo_supervisord_conf > /etc/supervisor/supervisord.conf  # 把默认配置文件放入在刚才创建的文件夹里
  1. 修改配置文件

cd /etc/supercisor    # 切换到刚才创建的文件夹下
vim supervisord.conf    # 编辑配置文件

在配置文件的最后一行加入:

[include]
files = /etc/supervisor/supervisord.conf.d/*.conf

保存退出!
创建supervisord.conf.d文件夹,在此文件夹中创建celeryd_worker.conf文件并进行如下配置:

[program:celeryworker]  # 这个是进程的名字
command=celery -A myproject worker -l info  # 要运行的命令
# command=/您项目的环境或虚拟环境地址/celery -A myproject worker -l info
directory=/home/admin/myproject  # 项目的目录
numprocs=1
#设置log(日志)的路径
stdout_logfile=/var/log/supervisor/celeryworker.log
stderr_logfile=/var/log/supervisor/celeryworker.log
autostart=true
autorestart=true
startsecs=10
stopwaitsecs = 600
priority=15

四. 启动supervisor

supervisord -c /etc/supervisor/supervisord.conf

①报错如下:

Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
For help, use /usr/local/bin/supervisord -h

说明端口被占用了,以下方式解决:

unlink /var/run/supervisor.sock
# 或者
unlink /tmp/supervisor.sock

②启动之后未报错,但查看状态提示:

FATAL     Exited too quickly (process log may have details)

解决办法:

cd /var/log/supervisor/
vim celeryworker.log
查看日志中的错误信息

五.查看状态等操作

supervisorctl
通过这个命令可查看目前状态,如下图所示即为成功

可通过以下几条简单的命令做一些操作。
status # 查看状态
reread # 读取配置信息
update # 加载最新的进程
stop # 停止进程
start # 启动进程
reload # 重新加载配置

注意:celery配置、任务中和刚才做的这些配置千万不能有中文!!千万不能有中文!千万不能有中文!!!



评论

本站升级中... 如有好的建议请加入QQ群!

相关文章推荐 ?
近七日热文推荐 !
回到顶部