2011-01-24 4 views
0

Приложение My Rails (3) использует AJAX для загрузки нескольких портлетов на приборной панели. Пользователь должен пройти аутентификацию, чтобы иметь возможность просматривать панель управления. Таким образом, user_id, хранящийся в сеансе, важен. Я использую хранилище сеансов ActiveRecord по умолчанию.Почему Rails сохраняет сеанс, даже если никаких изменений не было?

После завершения GET '/ dashboard, несколько XHR GET запрашивают огонь (и обрабатываются параллельно b/c балансировки нагрузки). Эти запросы никак не изменяют сеанс, они просто извлекают user_id из сеанса.

По-прежнему это приводит к UPDATE 'sessions' ... where 'session.id' = ... для каждого запроса XHR. Вызов блокировки строк в первом запросе XHR, поэтому следующие запросы XHR зависают до тех пор, пока блокировка не будет отпущена.

Есть ли причина, по которой Rails должен сохранить сеанс снова в базе данных, даже если никаких изменений не было?

ответ

0

Rails обновляет поле updated_at, поэтому вы можете увидеть, когда сессия была последней. .

Например, вы можете выбросить сеансы, которые не использовались в течение некоторого времени. Выполнение запроса означает, что вы используете сеанс.

Смежные вопросы