3

誰でもhttpsessionをGAEで破棄する方法を知っていますか? 私は、HttpSessionListenerがGAEで正しく動作せず、sessionDestroyedメソッドが決して呼び出さないことを発見しました。Google App Engine httpsessionのトラッキング方法

具体的には、ユーザーがアプリケーションにログインするときにデータベースに保存する情報がありますが、一部のユーザーが非アクティブな状態になっている場合は、この情報をdbから削除する必要があります。このようなイベントが発生したときに呼び出されるようになりました。今は毎分実行されるcronジョブを実行しました。ジョブはこの種のすべてのデータを照会し、メモリ内のどのデータが非アクティブであるかを調べます。しかし、これは非常に非効率的な方法です、私はそれをキャッシュで最適化することができます。しかし、おそらくthareは他のエレガントな方法です。

どのような考えも暖かく飾られています。

答えて

3

ご覧のとおり、HttpSessionListenerはApp Engineでは動作しないため、これはできません。これは、App Engineアプリが複数のマシンで複数のインスタンスを実行しているため、これを呼び出す単一のVMは存在しないためです。あなたが説明するように定期的なクリーンアップスクリプトを実行することがこれを行うための最良の方法ですが、実際に毎分実行する理由はありません。

+0

はい、私はHttpSessionListenerがGAE上でwokrをしない理由を理解しているので、そのような可能性はありません。さて、私は正しいことを確実にしたいと思っていました。ありがとうございました。 – endryha

+0

万一、この問題に関する新しい情報がありますか? –