為laravel隊列安裝supervisor並配置


supervisor 是用 Python 開發的進程管理程序;
python 在主流的 linux 發行版都已經內置了;
pip 則是 python 的一個包管理工具;
跟 php 的 composer 類似; 
但是系統默認沒有安裝 pip ;
先來安裝;

wget https://bootstrap.pypa.io/get-pip.py python get-pip.py pip install supervisor mkdir /etc/supervisor echo_supervisord_conf > /etc/supervisor/supervisord.conf mkdir -p /etc/supervisor/conf.d
Bash

修改 supervisord.conf 配置;

vim /etc/supervisor/supervisord.conf
Bash

添加如下內容

[include] files = /etc/supervisor/conf.d/*.conf
Bash

修改 laravel-worker.conf 配置

vim /etc/supervisor/conf.d/laravel-worker.conf
Bash

添加如下內容

[program:laravel-worker] process_name=%(program_name)s_%(process_num)02d command=php /www/baijunyao/artisan queue:work redis --sleep=3 --tries=3 autostart=true autorestart=true user=root numprocs=1 redirect_stderr=true stdout_logfile=/www/baijunyao/storage/logs/workers.log
Bash

將 /www/baijunyao 替換為自己項目的絕對路徑

numprocs 是進程數 文檔默認是8 開多了浪費資源 根據自己的實際情況定

給執行權限

chmod -R +x /etc/supervisor/conf.d
Bash

啟動 supervisord

supervisord -c /etc/supervisor/supervisord.conf
Bash

如果提示如下錯誤

Error: Another program is already listening on a port that one of our HTTP servers is configured to use.  Shut this program down first before starting supervisord.
Bash

執行關閉命令:

supervisorctl shutdown
Bash

再嘗試啟動

supervisord -c /etc/supervisor/supervisord.conf
Bash

查看是否運行

ps -ef | grep 'supervisord'
Bash

 

 

 

依次運行如下命令;啟動 laravel-worker

sudo supervisorctl reread sudo supervisorctl update sudo supervisorctl start laravel-worker:*
Bash

如果報這類錯誤

laravel-worker:laravel-worker_00: ERROR (spawn error) laravel-worker:laravel-worker_01: ERROR (spawn error)
Bash

那就laravel 中的代碼寫的有問題;
或者是指定的 stdout_logfile 文件沒有權限;

執行 supervisorctl

supervisorctl
Bash

如果輸入類似下面這樣則表示成功;

 

 

如果沒有成功發送郵件:
手動執行下面的命令查看具體的報錯信息;

php /www/baijunyao/artisan queue:work redis --sleep=3 --tries=3
Bash

將 /www/baijunyao 替換為自己項目的絕對路徑

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM