1

ビューの Django (mod_wsgi) でログを記録しようとしています。ただし、クライアントがmod_perlで利用可能な perlcleanuphandler フェーズと同様に停止しないように、これを実行したいと考えています。「リクエストが処理された直後に何らかのコードを実行するために使用されます (クライアントが離れた)」という行に注目してください。これはまさに私が欲しいものです。

クライアントにサービスを提供してから、ログを記録したいと考えています。mod_wsgi または Django にコードの適切な挿入ポイントはありますか? ここここで提案を調べました。ただし、どちらの場合も、単純なものを配置time.sleep(10)してURLにcurl/wgetを実行すると、10秒間カールが返されません。

コメントの1つで提案されているように、time.sleep inメソッドをHttpResponseオブジェクトに入れようとしました__del__が、まだサイコロはありません。

ログ データをキューに入れ、バックグラウンド処理を行ってログを保存できる可能性があることは認識していますが、他のより単純で簡単なアプローチがあれば、そのアプローチは避けたいと思います。

助言がありますか ?

4

1 に答える 1

0

次のドキュメントを参照してください。

http://code.google.com/p/modwsgi/wiki/RegisteringCleanupCode

WSGI 固有の (mod_wsgi 固有ではない) 方法の場合。

他の人が指摘したように、Django には独自の方法があるかもしれませんが、すべての応答コンテンツがクライアントに書き戻された後に起動されるかどうかはわかりません。

于 2012-08-20T20:14:32.750 に答える