Приложение My Rails (3) использует AJAX для загрузки нескольких портлетов на панель инструментов. Пользователь должен пройти проверку подлинности, чтобы иметь возможность просматривать панель инструментов. Таким образом, user_id, сохраненный в сеансе, важен. Я использую хранилище сеансов ActiveRecord по умолчанию.
После завершения GET '/ dashboard' несколько запросов XHR GET запускаются (и обрабатываются параллельно с балансировкой нагрузки). Эти запросы никоим образом не изменяют сеанс, они просто извлекают идентификатор пользователя из сеанса.
Тем не менее, это приводит к UPDATE 'sessions' ... where 'session.id' = ...
для каждого запроса XHR. Вызывает блокировку строки в первом запросе XHR, поэтому следующие запросы XHR зависают до тех пор, пока не будет снята блокировка.
Есть ли какая-либо причина, по которой Rails должен снова сохранить сеанс в базе данных, даже если не было никаких изменений?