用supervisor管理laravel常駐任務(佇列等)配置

luke_wu發表於2020-10-25

生產環境中需要一個可靠的程式管理工具來幫助laravel保持任務程式的狀態,supervisor是非常廣泛的選擇

一. 安裝supervisor

ubuntu環境下:

apt install supervisor

二. 配置supervisor

配置檔案有兩個位置:
主配置檔案:/etc/supervisor/supervisord.conf 通常用於配置全域性通用的配置
個性化配置檔案:/etc/supervisor/conf.d/*.conf 通常用於配置單個程式組或者程式的個性化配置,類似於nginx配置時把多個server單獨放在獨立的配置檔案裡
supervisor的配置說明文件:www.rddoc.com/doc/Supervisor/3.3.1...

三.舉個例子:

// 在/etc/supervisor/conf.d/路徑下建立一個 foo.conf 檔案,存放一個組名為foo的配置
[group:foo] // 建立一個程式組
programs=bar // 程式組包括的程式,多個程式用逗號隔開

[program:bar] // 建立一個程式
process_name=%(program_name)s_%(process_num)02d // 啟動的程式名 : bar_00 bar_01 ...
command=php /data/www/laravel-path/artisan queue:work --sleep=3 --tries=3 // 執行的程式命令
autostart=true // 隨supervisor啟動自動啟動
autorestart=true
user=deploy // 執行程式的使用者
numprocs=8 // 程式數
redirect_stderr=true
stdout_logfile=/data/logs/foo.log

啟動supervisor: supervisord -c /etc/supervisord.conf
進入supervisor操作檯:supervisorctl

supervisorctl> reread // 讀取新增加的配置
supervisorctl> update
supervisorctl> start foo:* //啟動foo組下的所有程式

結語

記錄的比較簡略,希望能幫助到有需要的人

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

相關文章