3

webapp2_extrasのセッションは非常に便利で、ユーザーのログインなどを維持するために使用しています。しかし、それについてのドキュメントはあまりありません。例:セッションディクショナリのエントリのメモリ制限はどれですか?

これまで、文字列と数値を保存してきました。ただし、HTMLフォームからアップロードした画像全体を保存する必要があります(この画像は一時的なものであり、破棄される可能性があるため、やらなければならないことが確実になるまで、データストアに保存したくありません。それ)。それはうまくいかないようです、そして私は私がメモリの問題にぶつかっていると思います:

self.session['photo_image']  = self.request.get("photo_image")

そうですか?メモリの制限があると思いますが、見つかりません。他にどのように一時的な画像をGAEに保存できますか?

4

1 に答える 1

3

これを「インスタンスメモリ」に保存できます。たとえば、スクリプトの起動時にグローバルリストを作成し、それに着信画像を追加し、完了したら削除します。もちろん、ユーザーや大きなファイルがたくさんある場合も、すぐにメモリが不足します。また、インスタンスがシャットダウンするとすべてが失われ、複数のインスタンスが実行されていると問題が発生する可能性があります。

したがって、Memcacheはこれに最適です。 Memcacheを使用する

 def get_data():
    data = memcache.get('key')

    if data is not None:
        return data
    else:
        data = self.query_for_data()
        memcache.add('key', data, 60)
        return data

はい、聞いたことがあると思いますが、100%信頼できるわけではありませんが、膨大な数のファイルを何百も使用しておらず、何年もの間それらを維持していなければ、おそらく問題は発生しません。先入れ先出し(IIRC)であるため、データを失う可能性をさらに低くするために、多かれ少なかれそれらを処理します。memcacheがここでの最良のオプションになると思います。試してみてください。

于 2012-11-26T12:39:48.597 に答える