#django #sqlalchemy #django-sorcery
#django #sqlalchemy #django-sorcery
Вопрос:
Я играюсь с django-sorcery, и пока мне кажется, что я получаю только одно постоянное соединение с базой данных.
Поддерживает ли django-sorcery объединение пулов соединений? Если да, то как мне контролировать количество открытых подключений, доступных в пуле?
Комментарии:
1. Выполняете ли вы параллельные сеансы / запросы? Если нет, то нет необходимости приобретать дополнительные соединения.
2. Я вообще явно не управляю сеансами, просто выполняю запросы через ORM (например. Model.objects.all()). Должен ли я явно генерировать новые сеансы?
3. (и да, я имею в виду параллельный запуск многих сеансов / запросов)
4. Я не очень хорошо знаком с django-sorcery, но если это что-то вроде оболочки Flask-SQLAlchemy, то она будет обрабатывать сеансы за вас.
Ответ №1:
Сам дизайн похож на Flask-SQLAlchemy, за исключением той части, которая django_sorcery.db.sqlalchemy.SQLAlchemy
сама по себе является сеансом с ограниченной областью действия, где по умолчанию он будет использовать сеанс с локальной областью действия.
Если вы используете django_sorcery.db.middleware.SQLAlchemyMiddleware
, у вас все настроено для сеанса на запрос, вы получите один сеанс на запрос, и промежуточное программное обеспечение удалит его в конце запроса.
Что касается пула соединений, то им управляет сам sqlalchemy. Вы можете переопределить конфигурацию пула соединений с помощью строки запроса URL-адреса подключения или с помощью ALCHEMY_OPTIONS["engine_options"]
в конфигурации базы данных, которая передаст их в create_engine