Я использую:Почему PyMongo 3 дает ServerSelectionTimeoutError?
- Python 3.4.2
- PyMongo 3.0.2
- mongolab работает mongod 2.6.9
- uWSGI 2.0.10
- CherryPy 3.7.0
- nginx 1.6.2
Начальные параметры uWSGI:
--socket 127.0.0.1:8081 --daemonize --enable-threads --threads 2 --processes 2
настроить мой MongoClient ОДИН раз:
self.mongo_client = MongoClient('mongodb://user:[email protected]:port/mydb')
self.db = self.mongo_client['mydb']
Я стараюсь сохранить в формате JSON Dict в MongoDB:
result = self.db.jobs.insert_one(job_dict)
Он работает с помощью теста блока, который выполняет тот же самый код путь к MongoDB. Однако, когда я выполняю через CherryPy и uWSGI с помощью POST HTTP, я получаю это:
pymongo.errors.ServerSelectionTimeoutError: No servers found yet
Почему я вижу это поведение при запуске через CherryPy и uWSGI? Возможно, это новая модель потока в PyMongo 3?
Update:
Если я бегу без uWSGI и Nginx с помощью CherryPy встроенный сервер, на insert_one()
работ.
Update 1/25 4:53 вечера EST:
После добавления некоторых отладки в PyMongo, оказывается, что topology._update_servers()
знает, что тип_сервера = 2 для сервера 'myserver-a.mongolab.com. Однако server_description.known_servers()
имеет тип_сервера = 0 для сервера «myserver.mongolab.com»
Это приводит к следующему трассировки стека:
result = self.db.jobs.insert_one(job_dict)
File "/usr/local/lib/python3.4/site-packages/pymongo/collection.py", line 466, in insert_one
with self._socket_for_writes() as sock_info:
File "/usr/local/lib/python3.4/contextlib.py", line 59, in __enter__
return next(self.gen)
File "/usr/local/lib/python3.4/site-packages/pymongo/mongo_client.py", line 663, in _get_socket
server = self._get_topology().select_server(selector)
File "/usr/local/lib/python3.4/site-packages/pymongo/topology.py", line 121, in select_server
address))
File "/usr/local/lib/python3.4/site-packages/pymongo/topology.py", line 97, in select_servers
self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: No servers found yet
Я тоже нахожусь на подобной установке. Вы когда-нибудь находили ответ? – Greg
Ничего еще ... не вернулись к отладке. – drfence
Хотите, чтобы я начал щедрость? Будете ли вы отвечать на последующие вопросы? Я полностью застрял на этом. – Greg