Pregunta

Tengo un bucle donde pongo muchas entidades en el almacén de datos, algo como esto:

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

Sé que usar el cargador a granel, pero necesito hacer esto desde dentro del código ... lo que tengo actualmente funciona siempre que el límite no sea tan grande (de lo contrario obtengo un error superado por la fecha límite, pero ese no es el alcance de esta pregunta), solo estoy preguntando Si hay un enfoque mejor o más eficiente para hacer esto, ya que esto parece un truco feo, por ejemplo, un enfoque como poner todas las entidades de una sola vez en lugar de bucle más o menos.

¿Fue útil?

Solución

Estás haciendo un viaje de ida y vuelta para cada entidad que almacena. En su lugar, acumularlos y hacer un solo lote:

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

Si aún necesita dividir su operación en múltiples partes, use colas de tareas para enmarar cada parte del trabajo como una tarea separada.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top