2012-01-16 6 views
1

webapp.RequestHandlerベースのハンドラは、initialize()をオーバーライドして設定を実行できます。同様のfinalize()はありますか?これを実現するには、del()を上書きできますか?Pythonのfinalize()呼び出しと同等のRequestHandlerはありますか?

ポスト/取得機能は、私はどちらか(1)。。

を、これはブラウザにレスポンスのクリティカルパスにならないように可能性が完了した後に基本的に、私はいくつかの仕訳を作成するに探していますレスポンスがブラウザにフラッシュされた後に呼び出されると仮定して、この 'finalize'コールでこれを行うか、または(2)別のスレッドプールキューで作業をプッシュします。前者を行う方法があれば、それはずっと簡単で簡単です。

ありがとうございました。

答えて

1

__del__を上書きできますが、これは危険です(GCループや回収不能なオブジェクトを導入する可能性があります)。何も得られません。

App Engineランタイムは、WSGIアプリケーションが返されるまでユーザーに応答を返しません。これは、すべてのユーザーコードの実行が終了するまで発生しません。同様に、フロントエンドのスレッドは、作成された要求のスコープより長く実行することはできません。

要求の範囲外で作業したい場合は、タスクキューを使用する必要があります。

+0

ありがとう、偉大な洞察力のためのニック!私はタスクキューを見て、非常に良いヒントのように思える(このすべてに申し訳ありません..) – user1055761