3

GAE/Jアプリケーションでセッションを使用しています。週末に、データストアへの書き込みが大幅に増加しました。これは、多数の_ah_SESSIONエンティティが作成されたことが原因であると思われます(毎分約100〜200)。私たちが知ることができるように、キューをパージしたときに停止したため、それらを作成する不正なタスクキューがありました。このタスクは、 1時間ごとに実行するマッパープロセスの一部でした。

その1時間ごとのマッパー(または実際にタスクキューやcronジョブ、その他の多くのリクエスト)でのセッションは必要ありません。選択したURLのセッションの作成を無効にする方法はありますか?

4

1 に答える 1

3

残念ながらそれはできません。

_ah_SESSIONこれは、すべてのリクエストがデータベースに新しいエンティティを生成する非ブラウザクライアント(RESTまたはmapreduceジョブを介したデバイス)がある場合に特に厄介です。

これを回避する唯一の方法は、独自のセッションハンドラーを作成することです。たとえば、Cookieを設定/チェックし、特定のパスを無視するように設定するサーブレットフィルターです。

編集:

別の方法がある可能性があることに気づきました。クライアント(mapreduceジョブ)が適切な名前のダミーCookieを設定していることを確認してください。GAEはACSID、本番環境および開発dev_appserver_loginサーバーで指定されたCookieを使用します。常に同じCookie値を使用するだけなので、すべてのリクエストは1つのユーザー/セッションとして扱われます。

セッションオブジェクトの検索/保存のオーバーヘッドは引き続き存在しますが、少なくとも無数の_ah_SESSIONエンティティは作成されません。

于 2012-04-10T14:20:16.410 に答える