У меня возникла проблема, когда после того, как мое соединение mongodb с mongohq через pymongo некоторое время простаивает (без запросов), оно истекает.Это нормально, но соединение с базой данных создается только при запуске приложения Django.Похоже, что он восстанавливает соединение в порядке, но затем необходимо повторно подтвердить подлинность.Когда соединение прервалось и повторно подключилось, и запрос попытался выполнить, он вызывает OperationFailure
и следующее исключительное значение database error: unauthorized for db [shanereustle] lock type: -1
, которое говорит мне, что это повторное соединение, но не аутентификация.Я импортировал OperationFailure
из pymongo.errors
и пытался использовать следующую попытку ... за исключением того, что, похоже, я не могу уловить ошибку и выполнить аутентификацию.
try:
db.mongohq.shanereustle.blog.find()
except OperationFailure:
db.authenticate() #this function reauthenticates the existing connection
Но по какой-то причинеэто не ловит.Если вместо этого кода я просто запускаю db.authenticate () перед запросом, он будет проходить повторную проверку подлинности и работать нормально, но я не хочу повторной проверки подлинности при каждом запросе.Другие предложения о правильных способах сделать это очень приветствуются, и я ценю помощь.
Спасибо!