安装Supervisor
Supervisor 是 Linux 系统中常用的进程守护程序。如果队列进程 queue:work 意外关闭,它会自动重启启动队列进程。在 Ubuntu 安装Supervisor 非常简单:
sudo apt-get install supervisor
注:如果自己配置 Supervisor 有困难,可以考虑使用 Laravel Forge,它会为 Laravel 项目自动安装并配置 Supervisor。
配置Supervisor
Supervisor 配置文件通常存放在 /etc/supervisor/conf.d 目录,在该目录中,可以创建多个配置文件指示 Supervisor 如何监视进程,例如,让我们创建一个开启并监视queue:work 进程的 laravel-worker.conf 文件:
注意:laravel-worker必须和文件名一致
[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 个
user:指服务器的用户名
queue:work :进程并监视它们,如果失败的话自动重启。当然,你需要修改 queue:work sqs 的 command 指令来映射你的队列连接。
[program:laravel-worker]:这里新手被坑了几个小时,类似于分组,刚开始我有几个队列放一起,[program:laravel-worker]都一样,结果都不执行,后来把[program:laravel-worker]分组里面的laravel-worker换成单前文件名,xxxx 不带conf后缀,
直接 sudo supervisorctl update
启动Supervisor
文档内容:
当你成功创建配置文件后,你需要刷新 Supervisor 的配置信息并使用如下命令启动进程:
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start laravel-worker:*