Domanda

Ho un ciclo in cui ho messo un sacco di entità nel datastore, qualcosa di simile:

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

Lo so sull'utilizzo del massa uploader , ma io bisogno di fare questo all'interno del codice .. Quello che ho attualmente funziona finché il limite non è così grande (altrimenti ottengo un errore di scadenza superata, ma questo non è lo scopo di questa domanda), io sto solo chiedendo se c'è un approccio migliore o più efficiente per fare questo, come questo sembra un brutto hack, per esempio un approccio come mettere tutte le entità in un solo colpo, invece di loop o giù di lì.

È stato utile?

Soluzione

Si sta facendo un archivio dati di andata e ritorno per ogni entità di memorizzare. Invece, li accumulano e fare un unico put lotto:

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

Se hai ancora bisogno di rompere il vostro funzionamento fino in più parti, utilizzare Task code per accodare ogni pezzo di lavoro come un'attività separata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top