我正在使用NDB中的tasklet执行许多事务(实际上是100)。这是示例代码:
def import_entities(entities):
@ndb.tasklet
def put_single_entity_transaction(entity):
@ndb.tasklet
def put_single_entity():
old_entity = yield Entity.get_by_id_async(entity.key.id())
if not old_entity:
yield entity.put_async()
raise ndb.Return(entity)
else:
raise ValueError()
entity = yield ndb.transaction_async(put_single_entity)
raise ndb.Return(entity)
futures = [put_single_entity_transaction(entity) for entity in entities]
Future.wait_all(futures)
在F2实例上执行大约需要14秒。我可以以某种方式加快速度吗?我应该将方法改为另一种方法吗?感谢您的帮助!