После борьбы с разными вещами здесь и там я наконец-то смог запустить BottlePY на Apache и запустить сайт на платформе MongoDB. Я привык запускать приложения Django, поэтому я буду относиться к этому немного в моем вопросе.
Проблема
Каждый раз, когда страница загружается через BottlePY, соединение с базой данных MongoDB, расположенной на MongoHQ.com, должно проходить повторную проверку подлинности (это означает, что, вероятно, пришлось повторно подключиться).
Что я нашел
Я прикрепил функцию db.keep_alive()
к вершине каждой функции модели, чтобы перед выполнением любого запроса mongodb он пытался выполнить простой запрос. Если происходит сбой, он перехватывает ошибки OperationFailure или AutoReconnect и затем вызывает функцию db.authenticate()
. После повторной аутентификации я добавляю логи в базу данных logs, чтобы отслеживать, как часто нужно проводить повторную аутентификацию. В настоящее время требуется повторная аутентификация при каждой загрузке страницы (что требует выполнения запроса). Это не правильно.
Отличия от Джанго
Я использую эту же концепцию в django и обнаружил, что соединение с БД необходимо аутентифицировать только после 10-15 минут без выполнения запросов.
Я не понимаю, почему создание соединения pymongo в django отличается от создания соединения в бутылке, поскольку я использую тот же драйвер, функции и методы. Я не использую ни ORMS, ни что-либо подобное.
Версия
- Бутылка: 0.9.dev
- Джанго: 1.2.1 финал
- PyMongo: 1,8
Я ценю помощь!
Обновление: друг смог быстро взглянуть и заметил следующее, что может помочь с ответом на мой вопрос.
Похоже, что каждый запрос
запуск нового процесса Python, как
в отличие от Джанго, в котором один
процесс продолжается долго
период времени.