2015年11月30日

Tornado 教學 (12) - 使用 Supervisor #2 ( Use Supervisor for Tornado Web Application #2 )

上一篇介紹 Supervisor 設定及使用,但其實還有多重點沒提到。因此,這篇將會繼續介紹 Supervisor 相關設定。( 其他 Tornado 相關教學可以參考本篇整理 )



Supervisor Log 相關設定:
Supervisor 啟動時,若未特別設定 Log 檔案存放位置,它會以使用者預設 HOME 路徑作為存放位置。若想要修改存放位置與限制 Log 檔案大小,可以設定:
; supervisord 區塊
; logfile : Log 檔案存放位置
; maxbytes : 限制了檔案大小(KB, MB, GB)
; backups : Log 備份檔案數量
; pidfile : PID 檔案存放位置
[supervisord]
logfile=/your/path/supervisord.log
logfile_maxbytes=100MB
logfile_backups=10
pidfile=/your/path/supervisord.pid


Supervisor 多個 Processes 設定:
之前提過如何設定 program 區塊,但若你是需要執行多個 Tornado process 的話,可以使用比較簡潔的設定方式,參考如下:
; 定義 group 與所屬成員
[group:app]
programs=myapp

; Supervisor 可使用變數來設定
; 加入 numprocs,讓 Supervisor 知道要啟動幾個 Processes
; 以下範例,將會啟動 4 個,分別是  8000, 8001, 8002, 8003
[program:myapp]
command=python /your/path/test.py --port=80%(process_num)02d -ip=yourip
directory=/your/path
numprocs=4
process_name=%(program_name)s%(process_num)d
autorestart=true
redirect_stderr=true
loglevel=info
stdout_logfile=/your/path/tornado.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
; 若 redirect_stderr=true,則以下可省略
; stderr_logfile=/your/path/tornado.log
; stderr_logfile_maxbytes=50MB
; stderr_logfile_backups=10


Environment :
  ・ Mac OS X
  ・ Python 2.7

Reference :
  ・ Tornado
  ・ Supervisor