建立於: 7年前 ( 更新: 7年前 )
前言
由於queue workers是一個長期執行的程序,所以我們會需要一個程序管理員supervisor來監控Linux系統上的process是否持續運作,例如:當queue:work運作失敗時,可以自動重啟queue:work process。很幸運的D-Laravel已內建supervisor囉,所以不需要再自行安裝到Mac OS上即可使用。
當您要使用Laravel上的queue功能及Laravle Echo及Events及Broadcasting或Notifications 時,
您應該就會用到supervisor應用。
在D-Laravel上運行supervisor打不死的小強相當簡單。
您需更新至D-Laravel v1.2.15 才有支援
如果您使用舊版D-Laravel,您可以採用Docker官方的指令來執行,本文中會提到。
事實上已有一個sample在裡面了,
所以我們可以,簡單的copy這個sample來進行修改。
假定dlaravel安裝在我們的家目錄,所以指令如下:

上方的command設定中,我使用Laravel的default queure,因此不指定--quque=。
myproject即是我們在D-Laravel的sites資料夾內要執行queue:work的專案。
二、解除封印
將我們在docker-compose.yml中,php服務段落內supervisor設定掛載的#號註解移除。

三、執行php container內的超級小強吧,哦打錯,是supervisor.
D-Laravel就是docker的環境,當然我們可用官方的指令,執行container內的命令。
在dlaravel的資料夾中執行的語法如下:
還記得嗎,就在上面的第二步,我們移除了註解#,這樣就讓php的container,能掛載我們host端dlaravel目錄內的etc/supervisor資料夾。
並在第一步中,我們也產出了, laravel-work.conf 檔,所以php container內的supervisor可以依我們的 laravel-work.conf 設定來啟動。
對 Linux 初學者,可能會覺的這麼長的命令不好記,所以在新版的 D-Laravel 中提供簡易的 bash ,
讓我們可以少打幾個字,我們可透過 ./console 來啟動或停止 supervisor
或是
四、檢測container內的程序是否執行(額外補充)。
我們可以透過

當您要使用Laravel上的queue功能及Laravle Echo及Events及Broadcasting或Notifications 時,
您應該就會用到supervisor應用。
在D-Laravel上運行supervisor打不死的小強相當簡單。
您需更新至D-Laravel v1.2.15 才有支援
./console supervisor start
指令。如果您使用舊版D-Laravel,您可以採用Docker官方的指令來執行,本文中會提到。
SUPERVISOR三步曲
一、 建立supervisor設定檔至D-Laravel中的etc/supervisor資料夾事實上已有一個sample在裡面了,
所以我們可以,簡單的copy這個sample來進行修改。
假定dlaravel安裝在我們的家目錄,所以指令如下:
cd ~/dlaravel/etc/supervisor
cp laravel-worker.conf.sample laravel-worker.conf
vim laravel-work.conf

上方的command設定中,我使用Laravel的default queure,因此不指定--quque=。
myproject即是我們在D-Laravel的sites資料夾內要執行queue:work的專案。
二、解除封印
將我們在docker-compose.yml中,php服務段落內supervisor設定掛載的#號註解移除。

三、執行php container內的超級小強吧,哦打錯,是supervisor.
D-Laravel就是docker的環境,當然我們可用官方的指令,執行container內的命令。
在dlaravel的資料夾中執行的語法如下:
docker-compose exec php /etc/init.d/supervisor start
還記得嗎,就在上面的第二步,我們移除了註解#,這樣就讓php的container,能掛載我們host端dlaravel目錄內的etc/supervisor資料夾。
並在第一步中,我們也產出了, laravel-work.conf 檔,所以php container內的supervisor可以依我們的 laravel-work.conf 設定來啟動。
對 Linux 初學者,可能會覺的這麼長的命令不好記,所以在新版的 D-Laravel 中提供簡易的 bash ,
讓我們可以少打幾個字,我們可透過 ./console 來啟動或停止 supervisor
./console supervisor start
或是
./console supervisor restart
四、檢測container內的程序是否執行(額外補充)。
我們可以透過
./console top
指令檢測container內的supervisor程序是否執行。./console top php

No Comment
Post your comment