3

親愛なるみんな

現在、ndb API を使用して統計情報を保存しています。残念ながら、これが私のコストの主な原因になります。それらをmemcacheに保存するだけなら、もっと安くなると思います。キャッシュの有効期限が切れてデータが失われても問題ありません。

マニュアルを読んだ後、_use_datastore クラス変数を使用してこの動作を構成できると思います。

class StaticModel(ndb.Model):
    _use_datastore = False

    userid = ndb.StringProperty()
    created_at = ndb.DateTimeProperty(auto_now_add=True)

上記のステートメントが正しい解決策であるかどうかを知ることができますか?

乾杯!

4

1 に答える 1

5

やりたいことを実現するには、3つの方法があると思います。

1 つ目は、質問に従って NDB モデル クラスで _use_datastore = False を設定することです。

2 つ目は、StaticModel を配置/取得/削除するたびに use_datastore=False を渡すことです。例は次のとおりです。

model = StaticModel(userid="foo")
key = model.put(use_datastore=False)
n = key.get(use_datastore=False)

3 番目のオプションは、すべての StaticModel キーに対して false を返す NDB コンテキストでデータストア ポリシーを設定することです。何かのようなもの:

context.set_datastore_policy(lambda key: True if key.kind() == 'StaticModel' else False)
于 2013-07-04T06:27:46.310 に答える