asc*_*d00 11 google-app-engine python-2.7 app-engine-ndb google-cloud-datastore
在我的应用程序中,我执行了一些批处理操作.不幸的是,这有时需要永远更新400-500个实体.我所拥有的是所有实体键,我需要获取它们,更新属性并将它们保存到数据存储区并保存它们可能需要40-50秒,这不是我想要的.
我简化了我的模型来解释我做了什么(这很简单):
class Entity(ndb.Model):
title = ndb.StringProperty()
keys = [key1, key2, key3, key4, ..., key500]
entities = ndb.get_multi(keys)
for e in entities:
e.title = 'the new title'
ndb.put_multi(entities)
Run Code Online (Sandbox Code Playgroud)
获取和修改不会花太长时间.我试图get_async进入一个tasklet和其他任何可能的东西,只有在get或forloop需要更长时间才会改变.
但是真正令我困扰的是,放置需要50秒......
什么是在相当长的时间内完成此操作的最有效方法.当然我知道这取决于很多因素,比如实体的复杂性,但是它需要花费的时间实际上超出了我的可接受限度.
我已经尝试过异步操作,tasklets ......
归档时间: |
|
查看次数: |
4515 次 |
最近记录: |