У меня проблема с сессиями в моем веб-приложении на python / wsgi.Для каждого потока в каждом из двух процессов демона wsgi существует разное постоянное соединение mysqldb.Иногда, после удаления старых сеансов и создания нового, некоторые соединения по-прежнему извлекают старые сеансы из выбора, что означает, что они не могут подтвердить сеанс и снова запросить вход в систему.
Подробности: сеансы хранятся вТаблица InnoDB в локальной базе данных MySQL.После аутентификации (через CAS) я удаляю все предыдущие сеансы для этого пользователя, создаю новый сеанс (вставляю строку), фиксирую транзакцию и перенаправляю на первоначально запрошенную страницу с новым идентификатором сеанса в файле cookie.Для каждого запроса идентификатор сеанса в файле cookie сравнивается с сеансами в базе данных.
Иногда вновь созданный сеанс не обнаруживается в базе данных после перенаправления.Вместо этого старый сеанс для этого пользователя все еще там.(Я проверил это, выбрав и зарегистрировав все сессии в начале каждого запроса).Почему-то я получаю кешированные результаты.Я попытался выбрать сеансы с помощью SQL_NO_CACHE, но это не имело никакого значения.
Почему я получаю кэшированные результаты?Где еще может происходить кеширование и как его остановить или обновить кеш?В основном, почему другие соединения не видят вновь вставленные данные?