【问题标题】:How fast data store query expires?数据存储查询过期的速度有多快?
【发布时间】:2012-02-02 07:35:26
【问题描述】:

数据存储查询到期的速度有多快?我用谷歌搜索,但没有在文档中找到数字。

代码抛出:

com.google.appengine.api.datastore.DatastoreFailureException: query has expired or is invalid. Please restart it with the last cursor to read more results.

【问题讨论】:

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


    【解决方案1】:

    30 秒。

    Google 员工在他们的错误跟踪系统 here 中给出了半官方的回答。

    【讨论】:

      【解决方案2】:

      查询游标可以持续数小时。如果您在第一次执行查询后短时间内一直收到此错误,则可能意味着您的游标字符串不正确,或者您正在使用游标进行不正确的查询。 (查询必须与用于生成游标的查询相同。)

      如果您更改支持查询的复合索引的配置,所有现有游标都将失效。 The docs 建议更改底层实现(由 App Engine 团队)也可能使游标无效。

      【讨论】:

      • 30 秒后一致 :) 我只是想看看有关它的官方信息。但我发现(在我发布这个问题之后)是错误跟踪系统中的this comment。
      • 我认为您可能在谈论两种不同的东西,它们都被混淆地称为游标。 Dan 指的是可用于分页 UI 的游标。这些确实对它们的寿命没有限制——随着时间的推移,它们只会随着密钥被删除或插入而变得不那么准确。但是 30 秒超时更可能是指将单个查询的连续批次联系在一起的“内部游标”。如果您使用的是 Appstats,这是 RunQuery - Next - Next 等。这就是问题 4432 中的评论所指的内容。也许你正在做某种长期的后台工作?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多