Django multitenant с использованием промежуточного ПО - можно ли сохранять соединения

Я использую django с django-tenants для SaaS приложения, и оно использует поддомен пользователя для установки схемы базы данных в postgresql. Поэтому обращение к user1.app.com будет использовать схему 'user1'.

При каждом вызове представления по умолчанию создается новое соединение с базой данных. Если представление вызывает ajax, происходит новое подключение/отключение. Использование этого метода работает, так как каждый вызов получает путь поиска postgresql, установленный на правильную схему с помощью промежуточного ПО django-tenants.

Мой вопрос заключается в том, что если я установлю CONN_MAX_AGE для сохранения соединений в течение определенного периода времени, чтобы уменьшить большую нагрузку на сервер при подключении/отключении, будет ли django объединять соединения от нескольких пользователей, потенциально использующих различные схемы? Я обеспокоен, потому что:

  1. Все пользователи используют БАЗУ ДАННЫХ "по умолчанию". (меняется только путь поиска)
  2. .
  3. Я не вижу никакой логики, которая привязывает соединение к уникальной сессии пользователя.
  4. Встроенный сервер разработки игнорирует параметр CONN_MAX_AGE, поэтому я не могу протестировать локально.
  5. Я рассмотрел сигнал connection_created, но я буду дублировать логику с django-tenants и не уверен в непредвиденных последствиях.

Использую django 4.0.7 и posgresql 12

Любые соображения или предложения будут приняты с благодарностью.

Вернуться на верх