Mac 服務管理之 Supervisor
阿新 • • 發佈:2018-11-19
安裝
- brew安裝
brew install supervisor
- 安裝提示
==> supervisor
To have launchd start supervisor now and restart at login:
brew services start supervisor
Or, if you don't want/need a background service you can just run:
supervisord -c /usr/local/etc/supervisord.ini
- 安裝目錄
/usr/local/Cellar/supervisor/3.3.4: 573 files, 7.1MB
配置檔案
- 輸出配置檔案模板。
echo_supervisord_conf
- 在指定路徑建立配置檔案
/usr/local/etc/supervisor.d/*.ini
[program:project] process_name=%(program_name)s_%(process_num)02d command=php /「專案目錄絕對路徑」/artisan queue:work redis --sleep=5 --tries=1 autostart=true autorestart=true user=root numprocs=1 //啟動程序的數目。 redirect_stderr=true //如果為true,則stderr的日誌會被寫入stdout日誌檔案中 stdout_logfile=/「日誌路徑」/supervisor/project.log
啟停控制
- 進入 supervisor shell
supervisorctl -c /usr/local/etc/supervisord.ini
- 啟動指定的專案(project - 與定義的 program 要一致)
supervisor> reload
Really restart the remote supervisord process y/N? y
Restarted supervisord
supervisor> start project
logstash: started
supervisor> stop project
- 停止及檢視狀態
supervisor> stop project
logstash: stopped
supervisor> status
project RUNNING pid 8876, uptime 1:25:00
laravel 使用
laravel 佇列說明
佇列啟動
artisan queue:work redis --sleep=3 --tries=3
- 當佇列需要處理任務時,程序將繼續處理任務,它們之間沒有延遲。但是,如果沒有新的工作可用,
sleep
引數決定了工作程序將 「睡眠」 多長時間 - 在一項任務中指定最大的嘗試次數可以嘗試通過 Artisan 命令列
--tries
來設定