3

httpsession destroy を GAE で追跡する方法を知っている人はいますか? HttpSessionListener が GAE で正しく機能せず、sessionDestroyed メソッドが呼び出されないことがわかりました。

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

どんな考えも温かく適用されます。

4

1 に答える 1

3

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

于 2011-01-27T03:33:19.640 に答える