配置supervisor 让laraver的队列实现守护进程

1,安装: #brew install supervisor

 默认会安装在/usr/local/Cellar/supervisor目录

2,在etc下面新建supervisor.conf 文件,复制下面的代码(部分需要自行修改)

[inet_http_server]

port = 127.0.0.1:9001

username = harris

password = 123456

 

[unix_http_server]

file = /tmp/supervisor.sock

chmod = 0700

 

[supervisord]

logfile = /opt/logs/supervisor/supervisord.log

logfile_maxbytes = 50MB

logfile_backups=10

loglevel = info

pidfile = /tmp/supervisord.pid

nodaemon = False

minfds = 1024

minprocs = 200

umask = 022

identifier = supervisor

directory = /tmp

nocleanup = true

childlogdir = /tmp

 

[supervisorctl]

serverurl = unix:///tmp/supervisor.sock

 

[rpcinterface:supervisor]

supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface

 

 

[program:laravelworker]

process_name = %(program_name)s_%(process_num)02d

command = /usr/local/bin/artisan.sh queue:work --sleep=3 --tries=3

autostart = true

autorestart = true

user = phpadmin

numprocs = 8

redirect_stderr = true

stdout_logfile = /opt/logs/supervisor/worker.log

 

注意:

1,上面的几个日志目录必须存在,可以修改位自己的目录

2,program里的user是系统的一个用户名,不然会报错

3,/usr/local/bin/artisan.sh queue:work --sleep=3 --tries=3  这行代码是指向laravel的队列命令

4,artisan.sh脚本需要自己实现,大家的php目录,项目目录都不一样,但都是实现cd到项目的目录,php artisan $1 这个功能即可

3,启动服务 #supervisord -c /etc/supervisord.conf

4,修改了配置,重新读取配置:

#supervisorctl update

最后在laravel里往队列里添加任务即可了

原文地址:https://www.cnblogs.com/hxyphp/p/6279251.html