美文网首页
Laravel中Queue队列中使用Supervisor进程管理

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

作者: banbans | 来源:发表于2018-03-09 17:43 被阅读0次
第一步

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

相关文章

网友评论

      本文标题:Laravel中Queue队列中使用Supervisor进程管理

      本文链接:https://www.haomeiwen.com/subject/vzhmfftx.html