4

Twisted Pythonで記述されたかなり集中的なチャットソケットサーバーがあります。ファクトリでinternet.TCPServerを使用して起動し、ファクトリはクライアントとのすべての通信を処理するプロトコルオブジェクトを参照します。

クライアントが切断された後、プロトコルインスタンスが完全に破棄されるようにするにはどうすればよいですか?

クライアントが切断されると起動するconnectionLostという名前の関数があり、そこですべてのアクティビティを停止しようとしますが、一部のリアクターのもの(twisted.wordsインスタンスなど)が廃止されたプロトコルインスタンスに対して実行され続けると思われます。

これを処理するための最良のアプローチは何でしょうか?

ありがとう!

4

1 に答える 1

0

わかりました。この問題を解決するため__del__に、プロトコルクラスにメソッドを設定し、クライアントが切断されてから1分以内にガベージコレクションされなかったプロトコルインスタンスをログに記録しています。

誰かがもっと良い解決策を持っているなら、私はそれについて聞いてうれしいですが、これまでのところ、このログを使用していくつかの潜在的なメモリリークを修正しました。

ありがとう!

于 2009-08-06T00:14:22.663 に答える