Поместить много сущностей в хранилище данных одновременно
-
26-10-2019 - |
Вопрос
У меня есть петля, где я вкладываю много сущностей в хранилище данных, что -то вроде этого:
for line in open(file):
if count >= limit:
break
elif count >= offset:
prop1 = XXX
prop2 = YYY
MyEntity(prop1=XXX, prop2=YYY).put()
count += 1
Я знаю об использовании объемный загрузчик, но мне нужно сделать это из кода. То, что у меня сейчас есть, работает, пока предел не такой большой (в противном случае я получаю крайний срок, превышенный, но это не область этого вопроса), я только спрашиваю Если для этого есть лучший или более эффективный подход, так как это кажется ужасным взломом, например, подход, такой как все объекты в один выстрел, а не зацикливаться или около того.
Решение
Вы совершаете поездку в обратном пути к данту данных для каждого объекта, которую вы храните. Вместо этого накапливайте их и сделайте одну партию.
to_write = []
for line in open(file):
#...
to_write.append(MyEntity(prop1=XXX, prop2=YYY)
db.put(to_write)
Если вам все еще нужно разбить свою операцию на несколько частей, используйте очереди задач, чтобы включить каждый кусок работы в качестве отдельной задачи.