Tornado部署與執行

2022-02-06 14:48:00 字數 3876 閱讀 6496

執行多個tornado例項

網頁響應不是特別的計算密集型處理

多個例項充分利用 cpu

多埠怎麼處理

4. 安裝(注意看是否需要指定使用python2版本)

sudo pip2 install supervisor

安裝完之後先啟動 sudo supervisord

echo_supervisord_conf > /etc/supervisor/supervisord.conf

增加乙個tornadoes組

[group:tornadoes]

programs=tornado-8000,tornado-8001,tornado-8002

# 分別定義三個tornado的程序配置

[program:tornado-8000]

directory=/home/pyvip/ws/tudo/ ; 程式的啟動目錄

autostart=true ; 在 supervisord 啟動的時候也自動啟動

startsecs=5 ; 啟動 5 秒後沒有異常退出,就當作已經正常啟動了

autorestart=true ; 程式異常退出後自動重啟

startretries=3 ; 啟動失敗自動重試次數,預設是 3

user=pyvip ; 用哪個使用者啟動

redirect_stderr=true ; 把 stderr 重定向到 stdout,預設 false

stdout_logfile_maxbytes = 20mb ; stdout 日誌檔案大小,預設 50mb

stdout_logfile_backups = 20 ; stdout 日誌檔案備份數

; stdout 日誌檔案,需要注意當指定目錄不存在時無法正常啟動,所以需要手動建立目錄(supervisord 會自動建立日誌檔案)

loglevel=info

[program:tornado-8001]

directory=/home/pyvip/ws/tudo/

autostart=true

startsecs=5

autorestart=true

startretries=3

user=pyvip

redirect_stderr=true

stdout_logfile_maxbytes = 20mb

stdout_logfile_backups = 20

loglevel=info

[program:tornado-8002]

directory=/home/pyvip/ws/tudo/

autostart=true

startsecs=5

autorestart=true

startretries=3

user=pyvip

redirect_stderr=true

stdout_logfile_maxbytes = 20mb

stdout_logfile_backups = 20

loglevel=info

啟動和管理

啟動supervisor

使用預設的配置檔案 /etc/supervisor/supervisord.conf

sudo supervisord

明確指定配置檔案

sudo supervisord -c /home/pyvip/working/supervisord.con

使用 user 使用者啟動supervisord

sudo supervisord -u user

檢視、操作程序狀態

(tornado) pyvip@vip:~/ws/tudo$sudo supervisorctl

[sudo] password for pyvip:

tornadoes:tornado-8000 running pid 17652, uptime 0:00:28

tornadoes:tornado-8001 running pid 17653, uptime 0:00:28

tornadoes:tornado-8002 running pid 17654, uptime 0:00:28

supervisor>stop tornadoes:tornado-8001

tornados:tornado-8001: stopped

supervisor>stop tornadoes:

tornadoes:tornado-8000: stopped

tornadoes:tornado-8001: stopped

tornadoes:tornado-8002: stopped

supervisor>status

tornadoes:tornado-8000 stopped jun 26 07:43 pm

tornadoes:tornado-8001 stopped jun 26 07:43 pm

tornadoes:tornado-8002 stopped jun 26 07:43 pm

supervisorctl 命令介紹

停止某乙個程序,program_name 為 [program:x] 裡的 x

supervisorctl stop program_name

啟動某個程序

supervisorctl start program_name

重啟某個程序

supervisorctl restart program_name

結束所有屬於名為 groupworker 這個分組的程序 (start,restart 同理)

supervisorctl stop groupworker:

結束 groupworker:name1 這個程序 (start,restart 同理)

supervisorctl stop groupworker:name1

停止全部程序,注:start、restart、stop 都不會載入最新的配置檔案

supervisorctl stop all

載入最新的配置檔案,停止原有程序並按新的配置啟動、管理所有程序

supervisorctl reload

根據最新的配置檔案,啟動新配置或有改動的程序,配置沒有改動的程序不會受影響而重啟

supervisorctl update

sudo supervisorctl -u user -p 123 reload

搭配 tornado 服務使用

安裝和執行

nginx 配置檔案

主配置檔案/etc/nginx/nginx.conf

專案對應的配置檔案放到 /etc/nginx/conf.d/ 或者/etc/nginx/sites-enabled/

upstream tornadoes

proxy_next_upstream error;

server

}

Tornado部署與執行

執行多個tornado例項 網頁響應不是特別的計算密集型處理 多個例項充分利用 cpu 多埠怎麼處理 4.安裝 注意看是否需要指定使用python2版本 sudo pip2 install supervisor 安裝完之後先啟動 sudo supervisordecho supervisord co...

nodejs安裝部署與執行

wget2 解壓到合適的目錄 譬如root目錄 建立軟連線。tar xf node v10.13.0 linux x64.tar.xz ln s root node v10.13.0 linux x64 bin node usr local bin node ln s root node v10.1...

Tornado部署時那些奇怪的錯誤

在python main.py 無錯誤資訊時,使用 nohup python main.py 時卻出現 錯誤 ascii codec can t encode characters in position 20 23 ordinal not in range 128 其實是因為在將log資訊輸出到n...