Tornado 自動檢測開發(fā)中的代碼更改

2022-03-11 10:39 更新

修改源文件時自動重啟服務(wù)器。

大多數(shù)應(yīng)用程序不應(yīng)直接訪問此模塊。 相反,將關(guān)鍵字參數(shù) ?autoreload=True? 傳遞給 ?tornado.web.Application? 構(gòu)造函數(shù)(或 ?debug=True?,這將啟用此設(shè)置和其他幾個設(shè)置)。 這將啟用自動重新加載模式以及檢查模板和靜態(tài)資源的更改。 請注意,重新啟動是一種破壞性操作,當(dāng)進程重新啟動時,任何正在進行的請求都將被中止。 (如果您想在使用其他調(diào)試模式功能時禁用自動重載,請同時傳遞 ?debug=True? 和 ??autoreload=Fals?e?)。

該模塊也可以用作腳本的命令行包裝器,例如單元測試運行器。

命令行包裝器和應(yīng)用程序調(diào)試模式可以一起使用。 鼓勵這種組合,因為包裝器會捕獲語法錯誤和其他導(dǎo)入時失敗,而調(diào)試模式會在服務(wù)器啟動后捕獲更改。

當(dāng)使用 ?HTTPServer的多進程模式時,該模塊將無法正常工作。

重新加載會丟失任何 Python 解釋器命令行參數(shù)(例如 -u),因為它使用 ?sys.executable? 和 ?sys.argv? 重新執(zhí)行 Python。 此外,修改這些變量將導(dǎo)致重新加載行為不正確。

tornado.autoreload.start(check_time: int = 500) → None

開始觀察源文件的變化。

在 5.0 版中更改: ?io_loop參數(shù)(自 4.1 版以來已棄用)已被刪除。

tornado.autoreload.wait() → None

等待監(jiān)視的文件更改,然后重新啟動該過程。

旨在用于單元測試運行器等腳本的末尾,以在任何源文件更改后再次運行測試

tornado.autoreload.watch(filename: str) → None

將文件添加到監(jiān)視列表。

默認(rèn)情況下會監(jiān)視所有導(dǎo)入的模塊。

tornado.autoreload.add_reload_hook(fn: Callable[[], None]) → None

在重新加載進程之前添加一個要調(diào)用的函數(shù)。

請注意,對于打開的文件和套接字句柄,通常最好設(shè)置 ?FD_CLOEXEC標(biāo)志(使用 ?fcntl或 ?os.set_inheritable?)而不是使用重新加載掛鉤來關(guān)閉它們。

tornado.autoreload.main() → None

命令行包裝器,用于在其源更改時重新運行腳本。

腳本可以由文件名或模塊名指定:

python -m tornado.autoreload -m tornado.test.runtests
python -m tornado.autoreload tornado/test/runtests.py

使用此包裝器運行腳本類似于在腳本末尾調(diào)用 tornado.autoreload.wait,但此包裝器可以捕獲導(dǎo)入時問題,例如語法錯誤,否則會阻止腳本對?wait調(diào)用。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號