私は PHP/Apache のバックグラウンドを持っています。PHP/Apache セットアップでは、PHP インタープリターが apache モジュールによって読み込まれ、ページ要求ごとに、スクリプト全体を実行する新しいワーカーが作成されます。私は最近、Python で WSGI アプリケーションを扱っていますが、Apache (mod_wsgi) サーバーがアプリケーション全体をロードして維持しているようです。次に、着信要求に基づいてコードを実行します。私の理解が正しければ、一部のオブジェクトが実行されない理由を説明でき__del__
ますか?
編集: 私の場合、python mysql モジュールの周りにラッパー クラスがあります。アプリケーション全体で使用されるインスタンスは 1 つだけです。責任は、クエリを実行し、可能な場合はコード全体で mysql 接続を再利用することですが、すべてが処理されたときに接続が閉じられることを確認する必要があります。いくつかの部分では、マルチプロセッシングを使用しており、子プロセスを生成するために接続を再利用しないようにオブジェクトに指示しています。最初は、mysql接続を閉じる実装に使用できると思って__del__
いましたが、呼び出されないことに気付きました。各リクエストの後に接続が閉じられていることを確認するためにフラスコのティアダウン機能を使用することになりましたが、これを適切に処理するための他のオプションがあるかどうか疑問に思っていました。