Moh*_*mis 0 python google-app-engine python-2.7 google-cloud-datastore
我有一个循环,我把很多实体放入数据存储区,如下所示:
for line in open(file):
if count >= limit:
break
elif count >= offset:
prop1 = XXX
prop2 = YYY
MyEntity(prop1=XXX, prop2=YYY).put()
count += 1
Run Code Online (Sandbox Code Playgroud)
我知道使用批量上传器,但是我需要在代码中执行此操作.只要限制不是那么大,我目前有什么工作(否则我的截止日期超出错误,但这不是这个的范围问题),我只是问是否有更好或更有效的方法来做这件事,因为这看起来像一个丑陋的黑客,例如一种方法,如将所有实体放在一个镜头而不是循环左右.
您正在为您存储的每个实体进行数据存储往返.相反,累积它们并执行单个批处理:
to_write = []
for line in open(file):
#...
to_write.append(MyEntity(prop1=XXX, prop2=YYY)
db.put(to_write)
Run Code Online (Sandbox Code Playgroud)
如果您仍然需要将操作分解为多个部分,请使用任务队列将每个工作块作为单独的任务排入队列.