修改源文件時(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)致重新加載行為不正確。
開(kāi)始觀察源文件的變化。
在 5.0 版中更改: ?io_loop
參數(shù)(自 4.1 版以來(lái)已棄用)已被刪除。
等待監(jiān)視的文件更改,然后重新啟動(dòng)該過(guò)程。
旨在用于單元測(cè)試運(yùn)行器等腳本的末尾,以在任何源文件更改后再次運(yùn)行測(cè)試
將文件添加到監(jiān)視列表。
默認(rèn)情況下會(huì)監(jiān)視所有導(dǎo)入的模塊。
在重新加載進(jìn)程之前添加一個(gè)要調(diào)用的函數(shù)。
請(qǐng)注意,對(duì)于打開(kāi)的文件和套接字句柄,通常最好設(shè)置 ?FD_CLOEXEC
標(biāo)志(使用 ?fcntl
或 ?os.set_inheritable
?)而不是使用重新加載掛鉤來(lái)關(guān)閉它們。
命令行包裝器,用于在其源更改時(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)用。
更多建議: