Supervisor – Laravel Quene Worker

Supervisor – Laravel Quene Worker

Supervisor – Laravel Quene Worker, 近期使用到Notification 及 Job的功能,使用時都有添加shouldQuene 這個接口。用來處理佇列排程的問題。在本機端時,.env檔案內的QUENE_DRIVER預設是sync所以在本機執行時其實滿順暢的,但是當放到正式環境時,我們把QUENE_DRIVER改為redis, 由於改為外部服務了,所以我們為了確保 Quene的執行順利,需要安裝Laravel官方推薦的Supervisor這個Linux package,他是一個進程監控軟體(process monitor),當你的quene:work失敗後他會自動幫你重啟。

安裝

首先你需要一個Linux 的系統,下command:

sudo apt-get install supervisor

設定

接著你要去處理的設定檔,一般都會是放在/etc/supervisor/conf.d底下。在這個資料夾底下你可以創見多個檔案去監控你的排程。舉例來說,我現在有個Laravel-worker.conf 檔。以下是設定值(官方已檔案在forge上當例子):

[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

原則上比較需要常修改的是

command 修改成你要執行的command,一般修改路徑即可。

stdout_logfile存放log的地方,一般修改路徑即可。

當設定都完成後則可進行啟動

啟動

當把 conf檔設定完後,你需要更新Supervisor的設定檔和重啟

//讀取新增的文件
sudo supervisorctl reread
//重啟有修改的文件程序
sudo supervisorctl update
//啟動 laravel-worker程序
sudo supervisorctl start laravel-worker:*

當以上程序都完成後, Quene的服務應該就可以正常運作了!