一次将许多实体放入数据存储中
我有一个循环,将很多实体放入数据存储区,如下所示:
for line in open(file):
if count >= limit:
break
elif count >= offset:
prop1 = XXX
prop2 = YYY
MyEntity(prop1=XXX, prop2=YYY).put()
count += 1
我知道如何使用 批量上传器,但我需要在代码中执行此操作.. 只要限制不是那么大,我目前所拥有的就有效(否则我会收到超过截止日期的错误,但这不是这个问题的范围),我只是问是否有更好或更有效的方法来做到这一点,因为这看起来像是一个丑陋的黑客,例如一种将所有实体放在一个镜头中而不是循环等的方法。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在为您存储的每个实体进行数据存储往返。相反,累积它们并执行单个批处理:
如果您仍然需要将操作分成多个部分,请使用任务队列将每个工作块作为单独的任务排队。
You're doing a datastore round trip for each entity you store. Instead, accumulate them and do a single batch put:
If you still need to break your operation up into multiple parts, use Task Queues to enqueue each chunk of work as a separate task.