Estoy tratando de averiguar cómo manejar pymongo.errors.ServerSelectionTimeoutError si los datos están inactivos o si de alguna manera la conexión a Studio 3T (mongo gui) hace que la base de datos baje. así que quiero volver a conectarme a mongo.

if __name__ == '__main__':
    client = pymongo.MongoClient(host='localhost', port=27017)
    db = client.info_collect
    collection = db['info']
    if collection.count_documents({'link': url}) < 1:
        collection.insert_one(add_dict)
0
Raul Delgado de Luna 27 oct. 2020 a las 00:56

1 respuesta

La mejor respuesta

Simplemente debe envolver su código dentro de un bloque try-except donde maneja la excepción ServerSelectionTimeoutError volviendo a intentar conectarse y ejecutar la misma consulta dentro del bloque except nuevamente. algo como:

if __name__ == '__main__':

try:
    client = pymongo.MongoClient(host='localhost', port=27017)
    db = client.info_collect
    collection = db['info']
    if collection.count_documents({'link': url}) < 1:
        collection.insert_one(add_dict)

except pymongo.errors.ServerSelectionTimeoutError as e:

    client = pymongo.MongoClient(host='localhost', port=27017)
    db = client.info_collect
    collection = db['info']
    if collection.count_documents({'link': url}) < 1:
        collection.insert_one(add_dict)

0
ESDARII 8 nov. 2020 a las 17:44