我有一個遊戲系統的用戶模型。需要每小時增加100點。Google App Engine Cron作業問題 - 批量更新
# the key_name is the userid in this case
class User(db.Model):
points = db.IntegerProperty(default=0)
因此應該準備一個處理程序,跨所有實體執行GQL查詢? (那不是有500K有點慢 - 百萬用戶實體?)
如:
users = User.all() # if i'm not mistaken, only 1000 queries can be done.
for user in users:
user.points += 100
db.put(user)
我想使用佇列,並分片計數器,克服了1000 limiy,我可以把它關閉
但是再次說明,爲什麼我不把用戶上次登錄時的時間差,如果是N小時,我會獎勵用戶N * 100分?這應該減少我的應用程序的負載。
如: 類用戶(db.Model): lastlogin = db.DateTimeProperty() 點= db.IntegerProperty(默認值爲0)
你們覺得呢?