Django multitenant с использованием промежуточного ПО - можно ли сохранять соединения
Я использую django с django-tenants для SaaS приложения, и оно использует поддомен пользователя для установки схемы базы данных в postgresql. Поэтому обращение к user1.app.com будет использовать схему 'user1'.
При каждом вызове представления по умолчанию создается новое соединение с базой данных. Если представление вызывает ajax, происходит новое подключение/отключение. Использование этого метода работает, так как каждый вызов получает путь поиска postgresql, установленный на правильную схему с помощью промежуточного ПО django-tenants.
Мой вопрос заключается в том, что если я установлю CONN_MAX_AGE для сохранения соединений в течение определенного периода времени, чтобы уменьшить большую нагрузку на сервер при подключении/отключении, будет ли django объединять соединения от нескольких пользователей, потенциально использующих различные схемы? Я обеспокоен, потому что:
- Все пользователи используют БАЗУ ДАННЫХ "по умолчанию". (меняется только путь поиска) .
- Я не вижу никакой логики, которая привязывает соединение к уникальной сессии пользователя.
- Встроенный сервер разработки игнорирует параметр CONN_MAX_AGE, поэтому я не могу протестировать локально.
- Я рассмотрел сигнал connection_created, но я буду дублировать логику с django-tenants и не уверен в непредвиденных последствиях.
Использую django 4.0.7 и posgresql 12
Любые соображения или предложения будут приняты с благодарностью.