by Devin Yang

建立於: 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 才有支援 ./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 laravl-work.conf
上方的command設定中,我使用Laravel的default queure,因此不指定--quque=。
myproject即是我們在D-Laravel的sites資料夾內要執行queue:work的專案。

二、解除封印
將我們在docker-compose.yml中,php服務段落內supervisor設定掛載的#號註解移除。
comment out 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

./console top php
 

Tags: dlaravel

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


dlaravel

超好用HTML轉PDF套件mpdf介紹

開發時,會需進行HTML轉PDF的輸出嗎?這個影片介紹,如何透過php的mpdf的函式庫,輸出PDF畫面上。

dlaravel

哈,我成功讓D-Larave在樹莓派ARM的環境執行囉

這次買樹莓派是覺的這個東西很好玩,另外就是我家中的Mac環境太新了,無法正常編譯Line Simple Beacon, 透過樹莓派,輕鬆易用,環境上也不會有什麼問題,當然還有更多更多的運用。 但身為D-Laravel的作者,當然要來順便試試看.....

dlaravel

D-Laravel測試域名*.dev變更為*.test

由於Google Chrome 63會強制轉換*.dev的域名為https了,D-Laravel新版的域名變更為*.test。 本文說明更新的方式。