Поддерживает ли django-sorcery объединение пулов соединений?

#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