самый эффективный способ получить, изменить и поместить пакет сущностей с помощью ndb

в моем приложении у меня есть несколько пакетных операций, которые я выполняю. к сожалению, обновление 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)

получение и изменение не займет слишком много времени. я пытался получить _асинхронное получение в тасклете и все остальное, что возможно, что меняется только в том случае, если получение или цикл for занимают больше времени.

но что меня действительно беспокоит, так это то, что пут занимает до 50 секунд...

как наиболее эффективно выполнить эту операцию(с)за приличное время. конечно, я знаю, что это зависит от многих факторов, таких как сложность объекта, но время, необходимое для размещения, действительно превышает приемлемый для меня предел.
я уже пробовал асинхронные операции, тасклеты...

11
задан Nyambaa 2 April 2014 в 08:36
поделиться