Я хочу, чтобы постоянное соединение было открыто для базы данных устаревшей третьей стороны в веб-приложении, основанном на django.
Я хочу сохранить связь между веб-приложением и устаревшей базой данных, так как создание нового соединения очень медленное для этой специальной БД.
Это не похоже на обычный пул соединений, так как мне нужно сохранить соединение для каждого пользователя сети. Пользователь "Foo" нуждается в собственном соединении между веб-сервером и устаревшим DB.
До сих пор я использую Apache и wsgi, но я мог бы изменить, если другое решение лучше подходит.
До сих пор я использую django. Здесь я тоже могу измениться. Но боль будет больше, потому что уже есть много кода, который нужно снова интегрировать.
До сих пор я использую Python. Думаю, Node.js лучше подойдет здесь, но боль в изменении слишком высока.
Конечно, потребуется какой-то тайм-аут. Если HTTP-запрос от пользователя "Foo" отсутствует в течение N минут, то постоянное соединение должно быть отключено.
Как это можно решить?
Обновление
Я называю это DB
, но это не БД, который настроен через settings.DATABASES. Это странная, унаследованная не широко распространенная DB-подобная система, которую мне нужно интегрировать.
Если в настоящий момент у меня есть 50 человек в Интернете, используя веб-приложение, мне нужно иметь 50 постоянных подключений. Один для каждого пользователя.
Код для подключения к DB
Я мог бы выполнить эту строку в каждом запросе:
strangedb_connection = strangedb.connect(request.user.username)
Но эта операция медленная. Использование соединения выполняется быстро.
Конечно, strangedb_connection
не может быть сериализован и не может быть сохранен в сеансе: -)