从数据存储区中获取随机实体

时间:2010-09-12 08:10:09

标签: python google-app-engine random google-cloud-datastore

非常简单,在我的AppEngine应用程序中,我有一百多万个实体,一个随机选择一个的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

也许有一个解决方案,但我不知道它是否是最好的:)

import random
from google.appengine.ext import db
from google.appengine.api import memcache

DATA_KEY = "models/keys/random"

def get_data():
    data = memcache.get (DATA_KEY)
    if data is None:
        offset = random.randint (1, 1000000)
        data  = self.MyModel.all (keys_only=True).fetch (100, offset)
        memcache.add (DATA_KEY, data, 60)

    entity_key = random.choice (data)
    return db.get (entity_key)

答案 1 :(得分:-1)