Помещение множества сущностей в хранилище данных одновременно - PullRequest
0 голосов
/ 11 января 2012

У меня есть цикл, в который я помещаю множество объектов в хранилище данных, что-то вроде этого:

for line in open(file):
    if count >= limit:
        break
    elif count >= offset:
        prop1 = XXX
        prop2 = YYY
        MyEntity(prop1=XXX, prop2=YYY).put()
    count += 1

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

1 Ответ

7 голосов
/ 11 января 2012

Вы выполняете обход хранилища данных для каждой сущности, которую храните.Вместо этого соберите их и выполните один пакетный набор:

to_write = []
for line in open(file):
  #...
  to_write.append(MyEntity(prop1=XXX, prop2=YYY)
db.put(to_write)

Если вам все еще нужно разбить свою работу на несколько частей, используйте очереди задач, чтобы поставить в очередь каждый кусок работы как отдельную задачу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...