Salut à tous. Je cours Ubuntu 10.04 et le dernier SDK de Google AppEngine. Je travaille sur un site web simple qui a des messages et des commentaires aux articles. J'ai fondamentalement mis en place un arbre simple pour stocker mes commentaires avec des valeurs parent_comment
, left
et right
.AppEngine: IOError lors de l'enregistrement d'un grand nombre d'objets dans le magasin de données
I a créé un événement qui se déclenche avant une nouvelle (not is_saved()
) commentaire est put()
dans le Google Datastore, qui calcule les left
et right
valeurs pour le nouveau commentaire, ainsi que des mises à jour pour les commentaires plus anciens d'une hiérarchie valide. J'ai fondamentalement suivi Managing Hierarchical Data in MySQL et l'ai implémenté en Python.
Un cycle qui soumet 40 commentaires pendant le démarrage fonctionne, mais quand j'augmente ce cycle à 80 ou plus, il me reste avec un IOError:
IOError: [Errno 24] Too many open files: '/tmp/tmp0agXqU'
Mon code pour générer 60 commentaires ressemble à ceci:
for k in range(0, 4):
comments = {0: None}
for i in range(1, 21):
j = random.randrange(0, len(comments))
pc = comments[j]
comments[i] = Comment(
name=lipsum(count=1),
email=lipsum(count=1, make_slug=True) + '@email.com',
url='http://' + lipsum(count=2, make_slug=True) + '.com',
content=lipsum(count=random.randrange(10, 50)),
object_link=p.key(),
parent_comment=pc
)
comments[i].put()
La fonction lipsum
retourne simplement un morceau de texte lorem ipsum.
Des idées pour résoudre ce problème? Merci!