По какой-то причине обработчик сеансов в моем приложении RoR для многих пользователей кажется странным в работе. Я использую хранилище сеансов RoR ActiveRecord по умолчанию, и в разработке все работает просто отлично. Пока я держу браузер открытым, одна существующая строка данных обновляется каждый раз, когда я изменяю сеанс, так же, как вы ожидаете, что сеансы будут работать. При переходе на производственный сервер я лично наблюдаю такое же поведение. Однако, просматривая базу данных, я вижу очень много строк, как на этом скриншоте:
http://imageshack.us/f/191/screenshot20110527at832.png/ (Извините, но я не могу включить изображения сюда напрямую, так как я новый пользователь)
Веб-сайт включен в iframe на другом веб-сайте и имеет диспетчер, который отправляет (redirect_to) пользователя другому действию в том же контроллере на основе некоторых данных сеанса, т.е. для всех пользователей, один и тот же URL-адрес (mydomain). com / dispatcher) будет включен в iframe. Действие, сопоставленное с этим URL, затем решит, куда перенаправить пользователя на основе сеанса [: current_action].
На сайте почти нет трафика, поэтому нет никакого способа, которым на самом деле ок. 10 отдельных пользователей, которые обращаются к сайту каждую секунду. На самом деле, я вижу в файле production.log, что при перенаправлении пользователи имеют разные session_ids, например, при посещении диспетчера пользователь может иметь конкретный идентификатор сеанса, а при запросе фактического целевого действия (как следствие redirect_to в диспетчере) идентификатор сеанса будет изменен на что-то другое. Кроме того, большинство (> = 97,5% из более чем 16000 строк данных) строк данных сеанса имеют «время жизни», равное 0 секундам (т. Е. Созданный_кат равняется обновленному_ат).
У вас есть идеи, что может вызвать эту проблему?
Есть ли вероятность, что вызовы redirect_to испортят обработку сеанса RoR?
Большое спасибо заранее за ваши мысли!