跳到主要内容

Supervisor 安装配置以及 Laravel 队列设置

· 阅读需 2 分钟
大刘
一个 web 开发者

安装

方法1:使用 easy_install 安装 Supervisor

# yum install python-setuptools
# easy_install supervisor

方法2:使用 pip 安装 Supervisor

# sudo pip install supervisor

配置文件

  1. 生成配置文件并创建相应目录,用于管理 Supervisor 启动进程
# echo_supervisord_conf > /etc/supervisord.conf
# mkdir -p /etc/supervisor/conf.d/
  1. 编辑 /etc/supervisord.conf,修改 [include] 区块内容(注意[include]前面的”;”也要去掉)
[include]
files = /etc/supervisor/conf.d/*.conf

这样 Supervisor 会加载 /etc/supervisor/conf.d/ 下的所有 .conf 文件

自动启动

  1. 下载 CentOS 使用的自动启动服务脚本 centos-systemd-etcs
# wget -O /usr/lib/systemd/system/supervisord.service https://github.com/Supervisor/initscripts/raw/master/centos-systemd-etcs
  1. supervisord 服务设为自启动:
# systemctl enable supervisord.service

输入 supervisorctl 命令可以进入 Supervisor 控制台

设置 Laravel 队列

  1. 新建 /etc/supervisor/conf.d/laravel-work.conf 文件:
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/local/php/bin/php /data/wwwroot/app.com/artisan queue:work database --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=www
numprocs=8
redirect_stderr=true
stdout_logfile=/data/wwwroot/app.com/storage/logs/queue.log

这里开启了 8 个 queue:work 进程,并监视它们,如果失败则自动重启;在项目的 storage/logs/queue.log 记录日志。

  1. 启动 Supervisor 服务:
# supervisord

至此,Supervisor 安装及 Laravel 队列设置完毕。

如果以后配置文件有修改或新增,进入 Supervisor 控制台,执行下面的命令:

# supervisorctl
supervisorctl> reread
supervisorctl> update
supervisorctl> start laravel-worker:*

或者直接执行:

# supervisorctl reread
# supervisorctl update
# supervisorctl start laravel-worker:*