安装
brew安装 brew install supervisor安装提示
==> supervisor
To have launchd start supervisor now and restart at login:
brew services start supervisor
Or,
if you don't want/need a background
service you can just run:
supervisord -c /usr/local/etc/supervisord.ini
安装目录
/usr/local/Cellar/supervisor/3.3.4: 573 files, 7.1MB
配置文件
输出配置文件模板。 echo_supervisord_conf在指定路径创建配置文件 /usr/local/etc/supervisor.d/*.ini
[program:project]
process_name=%(program_name)s_%(process_num)02d
command=php /「项目目录绝对路径」/artisan queue:work redis --sleep=5 --tries=1
autostart=true
autorestart=true
user=root
numprocs=1 //启动进程的数目。
redirect_stderr=true //如果为true,则stderr的日志会被写入stdout日志文件中
stdout_logfile=/「日志路径」/supervisor/project.log
启停控制
进入 supervisor shell supervisorctl -c /usr/local/etc/supervisord.ini启动指定的项目(project - 与定义的 program 要一致)
supervisor
> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
supervisor
> start project
logstash: started
supervisor
> stop project
停止及查看状态
supervisor
> stop project
logstash: stopped
supervisor
> status
project RUNNING pid 8876,
uptime 1:25:00
laravel 使用
laravel 队列说明
队列启动 artisan queue:work redis --sleep=3 --tries=3
当队列需要处理任务时,进程将继续处理任务,它们之间没有延迟。但是,如果没有新的工作可用,sleep 参数决定了工作进程将 「睡眠」 多长时间在一项任务中指定最大的尝试次数可以尝试通过 Artisan 命令行 --tries 来设置
异常处理
“unix:///tmp/supervisor.sock no such file” 错误处理 参考:
http://www.cashqian.net/blog/001472975510127673ea63db9234c4e8293cf43cefcafde000