laravel 佇列 supervisor 配置

WuTao_lxm發表於2021-10-21

supervisor:要安裝的軟體的名稱。
supervisord:裝好supervisor軟體後,supervisord用於啟動supervisor服務。
supervisorctl:用於管理supervisor配置檔案中program和supervisor服務本身。

首先在伺服器安裝

// 以 Ubuntu 為例
sudo apt-get install supervisor

// 以 centos 為例
sudo su -                        #切換為root使用者
yum install epel-release
yum install -y supervisor
systemctl enable supervisord     # 開機自啟動
systemctl start supervisord      # 啟動supervisord服務
systemctl status supervisord     # 檢視supervisord服務狀態
ps -ef | grep supervisord        # 檢視是否存在supervisord程式

建立配置檔案

mkdir /etc/supervisor
echo_supervisord_conf > /etc/supervisor/supervisord.conf

建立專案配置

cd /etc/supervisor/
mkdir con.d
vi supervisord.conf

#修改末尾配置資訊
[include]
files = /etc/supervisor/con.d/ *.conf

vi con.d/laravel.conf

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php (專案絕對路徑)/artisan queue:work redis --tries=1
autostart=true
autorestart=true
#注意執行的使用者,可能會造成使用者無許可權寫入日誌,報錯,退出程式
user=root
#執行幾個程式
numprocs=8
redirect_stderr=true
#日誌記入地址
stdout_logfile=/home/wwwlogs/laravel-work.log

給執行許可權

chmod -R +x /etc/supervisor/supervisord.d

啟動

使用supervisor程式管理命令之前先啟動supervisord

supervisord -c /etc/supervisor/supervisord.conf
supervisorctl status        //檢視所有程式的狀態
supervisorctl stop all      //停止
supervisorctl start all     //啟動
supervisorctl restart       //重啟
supervisorctl update        //配置檔案修改後使用該命令載入新的配置
supervisorctl reload        //重新啟動配置中的所有程式

sudo supervisorctl start laravel-worker:*

關閉

/usr/bin/supervisorctl stop all
// 先關閉supervisor啟動指令碼,之後再關閉supervisord服務
ps ax | grep supervisor
kill -9 pid

檢視程式

ps ax | grep supervisor
ps ax | grep artisan

重點 - 重點 - 重點

job裡有改動需要重啟job

重啟 queue

php artisan queue:restart

如果使用 redis 佇列
一定要先安裝 redis 擴充套件


安裝 redis 擴充套件

composer require predis/predis

php 配置檔案快取

// 合併所有的配置資訊為一個,提高載入速度
php artisan config:cache
// 移除配置快取檔案
php artisan config:clear
// 清空應用快取
php artisan cache:clear 

轉載:cdn.learnku.com/uploads/images/202...

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章