2015-04-21 10 views
9

Ich schreibe einen Python-Code, um jedes Dokument in der Sammlung zu aktualisieren. Mein Code ist wie:Wie mit pymongo.errors.AutoReconnect umgehen: Verbindung geschlossen?

for r, d_50 in enumerate(grid50.find().batch_size(500)): 
    self_grid = grid50.find({'_id':d_50['_id']}) 
    ..... 
    ..... 
    (processing process) 
    grid50.update({'_id':d_50['_id']},{'$set':{u'big_cell8':{"POI":venue_count, "cell_ids":cell_ids}}}) 

Allerdings, wenn ich diesen Code ausführen, ich Problem erfüllt:

raise AutoReconnect(str(e)) 
    pymongo.errors.AutoReconnect: connection closed 

Wer weiß, wie mit diesem Problem umgehen? Sollte ich etwas in meinem Code hinzufügen, um damit umzugehen?

Antwort

0

Von PyMongo Docs -

Ausnahme pymongo.errors.AutoReconnect (message = '', Fehler = None)

ausgelöst, wenn eine Verbindung zur Datenbank verloren geht und ein Versuch, auto- Wiederverbindung wird hergestellt.

Um eine automatische Wiederverbindung zu ermöglichen, müssen Sie diese Ausnahme behandeln. Dabei wird erkannt, dass die Operation, die sie verursacht hat, nicht unbedingt erfolgreich war. Zukünftige Operationen werden versuchen, eine neue Verbindung zur Datenbank zu öffnen (und diese Ausnahme weiterhin auslösen, bis die erste erfolgreiche Verbindung hergestellt wurde).

Grundsätzlich werden Sie haben diese Ausnahme zu behandeln, damit die Anwendung auf Mongo und verbindet wieder läuft die Funktion, die fehlgeschlagen ..

Verwandte Themen