1. 程式人生 > >Mac 服務管理之 Supervisor

Mac 服務管理之 Supervisor

安裝

  • 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 來設定

其他操作