Python 3 および Linux サーバーで Tornado を使用しています。テキストまたは XML ファイルを編集して保存するときに、Tornado を再起動させたいと考えています。ドキュメントを確認したところ、autoreload モジュールと watch 関数が見つかりました。
pyo ファイルでのみ機能したようです。特定の URI が変更されたときに再読み込みしたい場合はどうすればよいですか?
Python 3 および Linux サーバーで Tornado を使用しています。テキストまたは XML ファイルを編集して保存するときに、Tornado を再起動させたいと考えています。ドキュメントを確認したところ、autoreload モジュールと watch 関数が見つかりました。
pyo ファイルでのみ機能したようです。特定の URI が変更されたときに再読み込みしたい場合はどうすればよいですか?
設定でデバッグ フラグを True に設定すると、ファイルが変更されるたびに、または app.py で URI が変更されるたびに (またはハンドラーを定義した場所で)、Tornado が強制的にリロードされます。また、Tornado はテンプレート ファイルを自動的にリロードするため、そこにある変更はすぐに表示されます。
settings = {
'debug':True,
# other stuff
}
tornado.web.Application.__init__(self, handlers, **settings)
追加するファイルは絶対パスでなければなりません。
def addwatchfiles(*paths):
for p in paths:
autoreload.watch(os.path.abspath(p))
addwatchfiles('config.xml')
config.xml は、サーバーの python ファイルが開始するディレクトリと同じディレクトリにあります。
オンにする必要がありますautoreload
:
tornado.autoreload.start()
tornado.autoreload.watch('myfile')