Почему PyMongo 3 выдает ServerSelectionTimeoutError?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему PyMongo 3 выдает ServerSelectionTimeoutError?

Сообщение Anonymous »

Я использую:
  • Python 3.4.2
  • PyMongo 3.0.2< /li>
    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:pw@host.mongolab.com:port/mydb')
self.db = self.mongo_client['mydb']


Я пытаюсь сохранить словарь JSON в MongoDB:

result = self.db.jobs.insert_one(job_dict)


Он работает через модульный тест, который выполняет тот же путь кода к mongodb. Однако когда я выполняю через CherryPy и uWSGI с использованием HTTP POST, я получаю следующее:

pymongo.errors.ServerSelectionTimeoutError: No servers found yet


Почему я наблюдаю такое поведение при запуске через CherryPy и uWSGI? Возможно, это новая модель потоков в PyMongo 3?

Обновление:

Если я запускаю без uWSGI и nginx, используя встроенный сервер CherryPy, метод Insert_one() работает.

Обновление 1/25 4: 17:00 EST:

После добавления некоторой отладки в PyMongo выяснилось, что topology._update_servers() знает, что server_type = 2 для server ' myserver-a.mongolab.com». Однако server_description.known_servers() имеет server_type = 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


Подробнее здесь: https://stackoverflow.com/questions/310 ... meouterror
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • ServerSelectionTimeoutError при подключении к Mongodb с помощью Pymongo
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Pymongo.errors.ServerSelectionTimeoutError в кластере AKS
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Код Visual Studio, не видя pymongo «ModuleNotFoundError», установил pymongo с помощью pip. Почему он не видит пимонго?
    Anonymous » » в форуме Python
    0 Ответы
    48 Просмотры
    Последнее сообщение Anonymous
  • Как решить проблему Python+flask+mongodb ServerSelectionTimeoutError?
    Anonymous » » в форуме Python
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как решить ошибку python+flask+mongodb ServerSelectionTimeoutError?
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»