使用supervisor后台运行celery
使用supervisor后台运行celery
-
安装supervisor
pip install supervisor
-
生成配置文件
echo_supervisord_conf > /etc/supervisord/supervisord.conf # 可自己指定位置
-
echo_supervisord_conf 如果找不到该命令。 (其实在 pip 同目录)
sudo find / -name echo_supervisord_conf # 找到路径 sudo ln -s 命令路径 /usr/bin/echo_supervisord_conf # 创建软连接完成
-
-
修改配置文件
vim /etc/supervisord/supervisord.conf 1. 修改最后几行 [include] ;files = /etc/supervisor/conf.d/*.conf files = /etc/supervisord/*.conf # 配置文件所在位置 [program:celeryworker] # celeryworker 这个是进程的名字,随意起 command=celery -A bookstore worker -l info # 要运行的命令 directory=/home/fhx/git_test1/bookstore/ # 运行命令的目录 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 user=root # 进程执行的用户身份 根据实际情况使用 2. 将配置文件中的 /tmp/ 替换为 /var/
-
使用配置文件启动supervisord
supervisord -c /etc/supervisord/supervisord.conf # -c 指定配置文件即可
-
supervisord 如果找不到该命令。 (其实在 pip 同目录)
sudo find / -name supervisord # 找到路径 sudo ln -s 命令路径 /usr/bin/supervisord # 创建软连接完成
-
端口占用报错, 使用下面命令即可搞定
unlink /var/run/supervisor.sock # 或者 unlink /tmp/supervisor.sock
-
-
查看运行状态
supervisorctl status status # 查看状态 reread # 读取配置信息 update # 加载最新的进程 stop # 停止进程 start # 启动进程 reload # 重新加载配置 ps -ef|grep super ps -ef|grep celery
-
控制启动的进程数量
-
在配置文件最后,加上这两行即可。
process_name=%(program_name)s_%(process_num)02d ;多进程名称肯定不能相同,匹配多个 numprocs=4 ;启动N个进程
-