MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

PyMongo e multielaborazione:ServerSelectionTimeoutError

È un bug nella versione 3.0.x di pymongo. URL segnalazione bug https://jira.mongodb.org/browse/PYTHON-961

Soluzione per questo problema. (Testato in pymongo 3.0.3) Supera "connect=False" nell'inizializzazione dell'oggetto MongoClient

MongoClient(uri, connect=False)

O semplicemente attendi qualche secondo prima di creare un'istanza di MongoClient nel processo figlio (come 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()