by Devin Yang , 5 years ago

前言

由於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

Login is required to leave comments

Similar Stories


linux

ubuntu找不到add-apt-repository指令

ubuntu找不到add-apt-repository指令

docker,dlaravel

D-Laravel 1.5.5變更說明

D-Laravel的fpm image在php 7.2.1以前是使用docker php官方的dockerfile重build的, 並且所以我可以指定了fpm的預設的owner是dlaravel,   --with-fpm-user=USER    Set the user for php-fpm to run as. (default: nobody)   --with-fpm-group=GRP    Set the group for php-fpm to run as.

composer

如何知道,自己composer環境的目錄在那裡

查自己環境的composer家目錄