重构Google App Engine数据存储区

问题描述 投票:2回答:2

在我的数据存储区中,我有几百种类型的PlayerStatistic实体,我想重命名为GamePlayRecord 。 在开发服务器上,通过在交互式控制台中编写一个小脚本很容易实现。 但是,部署应用程序后,没有交互式控制台。

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

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

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

google-app-engine google-cloud-datastore
2个回答
5
投票

使用任务队列。

任务可以比Web请求运行更长时间。 您还可以将工作拆分为多个任务,这样它们就可以并行运行并且完成得更快。 完成任务后,您可以以编程方式插入新任务,因此整个过程自动完成,您无需手动刷新。


3
投票

appengine-mapreduce是进行数据存储重构的好方法。 它可以处理手工编写任务代码时需要解决的大量杂乱细节。

© www.soinside.com 2019 - 2024. All rights reserved.