Laravel中Queue队列中使用Supervisor进程管理

第一步

Supervisor安装完成之后,默认的配置文件是/etc/supervisord.conf,应针对某些配置进行以下修改

[unix_http_server]
file=/var/run/supervisor.sock   ; 
[supervisord]
logfile=/var/run/supervisord.log ;
pidfile=/var/run/supervisord.pid ;
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ;

这里把所有的/tmp路径改掉,因为tmp是缓存目录,容易被linux自动清掉,所以根据个人需求进行修改。

第二步

在配置文件/etc/supervisord.conf中,打开include代码块:

[include]
files = /etc/supervisor/conf.d/*.conf        //根据个人需求填写,此处引入自定义进行管理的进程的配置

在/etc/supervisor/文件夹下新建一个配置文件:laravel-worker.conf
以下为laravel官方给予的配置模板(具体参数可以详查)

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=forge
numprocs=8
redirect_stderr=true
stdout_logfile=/home/forge/app.com/worker.log

在本例中,numprocs 指令让 Supervisor 运行 8 个 queue:work 进程并监视它们,如果失败的话自动重启。当然,你需要修改 queue:work sqs 的 command 指令来映射你的队列连接。

在命令行执行

sudo supervisord -c /etc/supervisord.conf  //配置文件地址

若报错no such file 则自行检查或者创建以上修改过的配置目录文件
成功启动之后,运行命令

supervisorcrl

如下:

图片1.png

此时laravel的队列监听便完全常驻后台运行了!
注:若配置文件有改动,需要执行supervisorcrl update 更多supervisorcrl命令请查看手册http://supervisord.org/index.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。