【问题标题】:Refactoring a Google App Engine datastore重构 Google App Engine 数据存储
【发布时间】:2011-06-24 20:40:14
【问题描述】:

在我的数据存储中,我有数百个 PlayerStatistic 类型的实体,我想将它们重命名为 GamePlayRecord。在开发服务器上,通过在交互式控制台中编写一个小脚本很容易做到这一点。但是,一旦应用部署完毕,就没有交互式控制台了。

相反,我将该脚本复制到一个文件中并将该文件链接到app.yaml。我部署了脚本,打算运行一次然后删除它。但是,我遇到了另一个问题,即脚本运行了超过 30 秒。脚本在完成之前总是会被中断。

我的解决方案最终是重写脚本,以便一次创建和删除一个实体。这样,即使超时,脚本也可以从中断的地方继续。由于我只有几百个实体,因此刷新了大约 5 次。

有没有更好的方法在 Google App Engine 上运行一次性重构脚本?为了运行这些重构脚本,是否有绕过 30 秒限制的好方法?

【问题讨论】:

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


    【解决方案1】:

    使用任务队列。

    任务可以运行比网络请求更长的时间。您还可以将工作拆分为多个任务,以便它们并行运行并更快地完成。当您完成任务后,您可以通过编程方式插入新任务,因此整个过程是自动化的,您无需手动刷新。

    【讨论】:

    【解决方案2】:

    appengine-mapreduce 是进行数据存储重构的好方法。它处理了您在手动编写任务代码时必须处理的许多杂乱细节。

    【讨论】:

      猜你喜欢
      • 2011-05-26
      • 2013-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      • 2011-02-16
      • 2013-12-03
      • 1970-01-01
      相关资源
      最近更新 更多