GAE Golang - 查询在保存后不立即返回数据

时间:2014-06-18 08:49:35

标签: google-app-engine go google-cloud-datastore

我正在编写Google App Engine Go应用程序,但我在测试某些功能时遇到了问题。 Here is some sample code.问题如下:

  1. 我创建了一个新项目并将其保存到数据存储区
  2. 我在之后立即对该项目进行搜索查询(例如,获取命名空间中的所有项目)
  3. 该项目不存在
  4. 如果我稍后查询该项目(例如,在后续页面中),则会正常找到该项目。我理解这种行为对于部署在GAE上的应用程序可能是有意的,但我希望本地数据存储可以立即用于查询。

    有什么方法可以强制数据存储区进行整合并对这些查询有用吗?

1 个答案:

答案 0 :(得分:3)

这称为最终一致性,它是App Engine数据存储区的一项功能。

您可以使用get方法而不是查询来测试实体是否已保存。

在Java中,我们可以通过更改运行参数来设置本地数据存储的所需行为:

  

默认情况下,本地数据存储区配置为模拟   高复制数据存储区的一致性模型   数据存储区写入的百分比,不会立即显示   全局查询设置为10%。

     

要调整此一致性级别,请设置   datastore.default_high_rep_job_policy_unapplied_job_pct系统   具有与最终数量相对应的值的属性   您希望应用程序看到的一致性。

我找不到类似Go的东西。