安裝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:*