0

我有一个循环,我把大量实体进入数据存储,是这样的:在把许多实体在数据存储中一次

for line in open(file): 
    if count >= limit: 
     break 
    elif count >= offset: 
     prop1 = XXX 
     prop2 = YYY 
     MyEntity(prop1=XXX, prop2=YYY).put() 
    count += 1 

我知道有关使用bulk uploader,但我必须这样做从代码内.. 我目前有什么工作,只要极限不是那么大(否则我会得到一个超过期限的错误,但这不是这个问题的范围),我只是问是否有更好或更多有效的方法,因为这看起来像一个丑陋的黑客攻击,例如像所有的实体一个镜头,而不是循环等方法。

回答

7

您正在为您存储的每个实体执行数据存储往返。相反,他们积累做单批放:

to_write = [] 
for line in open(file): 
    #... 
    to_write.append(MyEntity(prop1=XXX, prop2=YYY) 
db.put(to_write) 

如果您还需要向上突破您的操作分成多个部分,使用任务队列排队工作的每个块作为单独的任务。

相关问题