У меня есть скрипт мониторинга, проверяющий экземпляр mongodb один раз в минуту, и вам нужен хороший способ подключения, выполнить простой запрос и вернуть его в течение 10 секунд или просто таймаутом в некоторых предсказуемым образом, если потребуется больше 10 секунд и позвольте мне поймать эту ошибку/исключение.Проверка состояния сервера с помощью pymongo с таймаутом
В соответствии с документацией pymongo вы не можете установить тайм-аут запроса, только тайм-аут сокета и соединения (который, кажется, работает нормально). Есть ли какое-нибудь обходное решение?
Поток программы заключается в следующем:
- Подключение к MongoDB
- Выполнение простого
find()
запроса для проверки последнего обновленного документа (используется для статистики) - закрыть соединение.
# 1 всегда работает нормально, но весь запрос истекает на # 2, и я не могу поймать его в пределах моего собственного наложенного 10-секундного лимита.
Блокировка, по-видимому, происходит в часы пик из-за ряда одновременных запросов уменьшения количества карт. Мы используем mongodb 2.4.3.
, если это индексированная find(), она должна заканчиваться быстрее, чем таймаут, тем более, что вы запрашиваете только одну запись! –