MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

PyMongo et multitraitement :ServerSelectionTimeoutError

C'est un bogue dans la version 3.0.x de pymongo. URL du rapport de bogue https://jira.mongodb.org/browse/PYTHON-961

Solution de contournement pour ce problème. (Testé dans pymongo 3.0.3) Passez "connect=False" dans l'initialisation de l'objet MongoClient

MongoClient(uri, connect=False)

Ou attendez simplement quelques secondes avant de créer une instance de MongoClient dans le processus enfant (comme time.sleep(2)).

def start(uri):
  time.sleep(2)
  mclient = MongoClient(uri)
  mclient.db.collection.find_one()

if __name__ == '__main__':
  p = multiprocessing.Process(target=start, args=('mongodb://localhost:27017/',))
  p.start()