我需要读取 Google AppEngine 数据存储中的所有条目来进行一些初始化工作。有很多实体(目前有 8 万个),而且还在继续增长。我开始达到 30 秒数据存储查询超时限制。

有没有关于如何在数据存储中分片这些类型的大量读取的最佳实践?有什么例子吗?

最佳答案

您可以通过多种方式解决此问题:

  • Task Queue 上执行你的代码,它有 10 分钟的超时而不是 30 秒(实际上更像是 60 秒)。最简单的方法是通过 DeferredTask

    警告 :DeferredTask 必须是可序列化的,因此很难将复杂数据传递给它。也不要让它成为内部类。
  • 参见 backends 。后端实例服务的请求没有时间限制。
  • 最后,如果你需要分解一个大任务并并行执行,那么看看 mapreduce
  • 关于google-app-engine - Google AppEngine - 大数据存储读取,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12099032/

    10-12 02:51