2015-04-21 15 views
9

Sto scrivendo un codice Python per aggiornare ogni documento in collezione. Il mio codice è simile:Come gestire pymongo.errors.AutoReconnect: connessione chiusa?

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}}}) 

Tuttavia, quando si esegue questo codice, ho incontrato problema:

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

Qualcuno sa come affrontare questo problema? Dovrei aggiungere qualcosa nel mio codice per affrontare questo?

risposta

0

Da PyMongo Docs -

eccezione pymongo.errors.AutoReconnect (message = '', errori = None)

sollevata quando una connessione al database viene persa e un tentativo di auto- la riconnessione sarà fatta.

Per riconnettersi automaticamente è necessario gestire questa eccezione, riconoscendo che l'operazione che lo ha causato non è necessariamente riuscita. Le operazioni future tenteranno di aprire una nuova connessione al database (e continueranno a sollevare questa eccezione fino al completamento della prima connessione corretta ).

In pratica dovrete gestire questa eccezione in modo che l'applicazione si riconnette al mongo e ri-esegue la funzione che non è riuscita ..

Problemi correlati