0

J'ai essayé d'ajouter des lots de données dans une liste avec quelques appels à db.put(). Mais il expire encore de temps en temps.Comment ajouter plus de 500 entrées au magasin de données avec put() dans google app engine?

Quelqu'un at-il des conseils?

+0

J'ai un fichier xml avec un tas de contacts que je veux ajouter à la banque de données. Le modèle Contact se compose de quelques attributs comme le numéro de téléphone, le nom, etc. Je suis en train d'analyser le fichier xml dans une liste d'entités Contact, puis de les charger dans le magasin de données. – bluegray

Répondre

2

Utilisez plusieurs options de vente et utilisez des tailles de lots plus petites (en les réduisant de moitié, par exemple) si vous rencontrez des délais d'attente. Toutefois, si vous ajoutez plus de 500 entités dans une requête d'utilisateur, vous faites probablement quelque chose de mal.

+1

Oui, les écritures sont très chères avec GAE. Peut-être détailler exactement ce que vous voulez faire, et voir si nous pouvons optimiser le processus. –

0

Le client de chargement en bloc fourni par Google avec App Engine (bulkload_client source) utilise par défaut la taille de lot à 10, ce qui indique que vous devez faire très attention à la taille de vos lots. J'ai récemment supprimé plusieurs milliers d'objets et j'ai trouvé que le plus que je pouvais passer à db.delete() était d'environ 400. Mais, parfois, ce serait timeout et je descendrais à 350. Je ne sais pas si les suppressions ou les mises sont plus chères cependant.

Questions connexes