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

4 投票
2 回答
1676 浏览
提问于 2025-04-16 04:02

很简单,在我的AppEngine应用中,我有超过100万个同类型的实体,随机选择一个最好的方法是什么?

2 个回答

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)

撰写回答