Tornado 自動(dòng)檢測(cè)開(kāi)發(fā)中的代碼更改

2022-03-11 10:39 更新

修改源文件時(shí)自動(dòng)重啟服務(wù)器。

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

該模塊也可以用作腳本的命令行包裝器,例如單元測(cè)試運(yùn)行器。

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

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

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

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

開(kāi)始觀察源文件的變化。

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

tornado.autoreload.wait() → None

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

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

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

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

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

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

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

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

tornado.autoreload.main() → None

命令行包裝器,用于在其源更改時(shí)重新運(yùn)行腳本。

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

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

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


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)