2012-05-29 8 views
8

私はPythonでWeb開発を始めました。私はWebアプリケーションを起動するためにFlaskを選択しました。アプリケーションをシャットダウンする前に解放するリソースがありますが、クリーンアップコードをどこに置くかわかりませんでした。 Flaskは、リクエスト処理の前後にコールバックを登録するために、before_requestteardown_requestのようなデコレータを提供しています。アプリケーションが停止する前に呼び出されるコールバックを登録するのに類似したものはありますか?おかげさまで Flaskアプリケーションでクリーンアップコードをどこに置くのですか?

+3

どのようなリソースがありますか? –

+0

私は、アプリケーションが停止したときにFlaskが提供する機能を知らない。あなたがきれいにしたいものを知ることは面白いでしょう。 Pythonには 'atexit'モジュールがあります。これはあなたが探しているものかもしれません。 –

+0

私はneo4jデータベースを使用しており、接続プールを維持しています。私はatexitが仕事をすると思います。私のクリーンアップコードを入れるのがより適切な場所ですか? –

答えて

3

atexitモジュールでは、プログラム終了コールバックを登録できます。アプリケーションがシグナルで終了しても、そのコールバックは呼び出されません。これらのケースを処理する必要がある場合は、signalモジュールで同じコールバックを登録できます(たとえば、SIGTERMシグナルを処理したい場合など)。

あなたはきれいにしたいものが間違っているかもしれませんが、ファイルハンドルやデータベース接続などのリソースは、通訳者のシャットダウン時に閉じてしまうので、心配する必要はありません。

関連する問題