私は現在、メッセージ処理アプリケーションとして使用する python ツイスト サーバーを開発しています。私は奇妙な問題に遭遇しました。
サーバーへの get_POST を処理するクラスを指定し、受信したメッセージをさらに処理するクラスに渡します。
メッセージは、新しいメッセージがあるたびにインスタンス化されるオブジェクトのメンバーであるディクショナリに処理されます。ただし、(たとえば) メッセージにディクショナリの 10 項目が含まれていた後、エントリが 9 つしかないメッセージが処理されると、10 番目はディクショナリに残ります。
メッセージを処理する前に辞書を明示的にクリアすることで、これを回避できました。
d = {}
ただし、辞書がさらに処理された後にオブジェクトがスコープ外になり、ガベージ コレクションが行われ、新しいメッセージごとに再インスタンス化されるはずだったので、私は戸惑いました。オブジェクトがインスタンスではなく、メンバーをシングルトンのように保持しているか、メンバーが静的であるかのように動作しているようです。
通常のスコープ ポリシーは、ねじれたフレームワークの下でも同じように機能しますか?それとも、オブジェクトがスコープ外になったときに確実に GC されるようにするために、何か追加の操作を行う必要がありますか?
ありがとう!
-ジョー。