使用supervisor后台运行celery

使用supervisor后台运行celery

最近打算上线一个B站相关的网站,采用了 celery 来处理任务队列,在本地的时候,那是可以多开,一直开着终端。但是线上生产环境肯定不行。所以需要使用supervisor。

先安装supervisor

安装命令:

$ pip install supervisor

对supervisor进行配置

先在etc目录下生成一个supervisor文件夹,然后生成默认配置文件:

$ echo_supervisord_conf > /etc/supervisor/supervisord.conf

修改配置文件

用vim修改一下:

$ vim /etc/supervisor/supervisord.conf

在最底下改成:

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

然后创建并进入supervisord.conf.d文件夹,创建 celeryd_worker.conf 文件并进行如下配置:

[program: ProjectName]
command=celery -A bookstore worker -l info ; 运行程序的命令
directory=/root/Publishing/PublishOutput/ ; 命令执行的目录
autorestart=true ; 程序意外退出是否自动重启
autostart=true ; 是否自动启动
stderr_logfile=/var/log/ProjectName.err.log ; 错误日志文件
stdout_logfile=/var/log/ProjectName.out.log ; 输出日志文件
environment=ASPNETCORE_ENVIRONMENT=Production ; 进程环境变量
user=root ; 进程执行的用户身份
stopsignal=INT
startsecs=1 ; 自动重启间隔 

启动 supervisor

$ supervisord -c /etc/supervisor/supervisord.conf

如果遇到报错信息为端口正在被占用的话运行下面的命令:

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

用 supervisorctl 即可监视状态。

正在加载评论区