关于appengine的索引过时了吗?

时间:2014-04-16 23:22:11

标签: python google-app-engine

我在我的现场appengine网站上进行此查询:

orders = models.Order.gql("WHERE status IN ('accepted','packing') ORDER BY created_on DESC").fetch(100)

令我惊讶的是,我得到的结果是状态未被接受'或者'包装',但'取消'。我以前从未见过这个问题,我今天才注意到它:

for order in orders:
...     order.status
... 
u'accepted'
u'accepted'
u'cancelled'
u'cancelled'
u'accepted'

有什么想法?似乎某些事情根本就是错误的。我没有缓存任何结果,这一切都在远程shell上,它发生在我的实时网站上。

1 个答案:

答案 0 :(得分:1)

如果您的实体最近发生了变化,这可能是数据存储区的最终一致性。更新实体时,索引需要一段时间才能反映您的更改,而实体本身是最新的。

如果数据为structured appropriately,您可以尝试祖先查询,看看会发生什么。