MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

PyMongo podnosi [errno 49] nie może przypisać żądanego adresu po dużej liczbie zapytań

Dzieje się tak, ponieważ niepoprawnie używasz PyMongo. Tworzysz nowego MongoClient dla każdego zapytania, co wymaga otwarcia nowego gniazda dla każdego nowego zapytania. Pokonuje to buforowanie połączeń PyMongo, a oprócz tego, że jest bardzo powolne, oznacza to również, że otwierasz i zamykasz gniazda szybciej niż twój stos TCP może nadążyć:pozostawiasz zbyt wiele gniazd w stanie TIME_WAIT, więc w końcu zabraknie Ci portów.

Na szczęście poprawka jest prosta. Utwórz jednego MongoClient i używaj go przez cały czas:

conn = pymongo.MongoClient('mongodb://localhost:27017')
coll = conn.databases['race_results']

def _perform_queries(query):
    return coll.find(query).sort("date", -1)



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. PyMongo i Multiprocessing:ServerSelectionTimeoutError

  2. Testowanie integracji Spring Boot z wbudowaną bazą danych MongoDB

  3. Spring Data Mongo - Jak uzyskać zagnieżdżoną tablicę odrębną dla wartości zagnieżdżonych?

  4. Mongoose zaludnia subdoc

  5. Wykonywanie JS na MongoDB podczas wstawiania z PHP