在App Engine中输入不可靠的数据

时间:2014-09-30 10:29:16

标签: google-app-engine

对于我们的游戏,我们每个玩家存储一行&完成后,我们按以下方式执行:

    pl = PlayerLevel.all().filter('player_id =', player_id).filter('level_id =', level_id ).get()

    if not pl:
      pl = PlayerLevel()
      pl.level_id = level_id
      pl.player_id = player_id
      ...

    ...else update stuff..

    pl.put()

但是出于某种原因,这段代码已经创建了两行,其中包含相同的player_id& level_id。事情是我们之前也见过这个。

任何人都知道发生了什么?

1 个答案:

答案 0 :(得分:1)

这是因为最终的一致性,在整个App Engine文档中都是fully documented。如果查询没有祖先,无法依赖查询(例如filter调用)来返回最新数据。