My Rails(3)应用程序使用AJAX在仪表板上加载一些portlet。必须对用户进行身份验证才能查看仪表板。因此存储在会话中的user_id很重要。我正在使用默认的ActiveRecord会话存储。
GET'/仪表板'完成后,会激活几个XHR GET请求(并且负载均衡处理并行b / c)。这些请求不会以任何方式修改会话,它们只是从会话中检索user_id。
但是,这会导致每个XHR请求UPDATE 'sessions' ... where 'session.id' = ...
。在第一个XHR请求中导致行锁定,因此在XHR请求之后会挂起,直到锁定被释放。
Rails是否应该将会话再次保存到数据库中,即使没有任何更改?
答案 0 :(得分:0)
Rails更新了updated_at
字段,因此您可以查看会话最后使用时间。
例如,您可能会丢弃一段时间未使用过的会话。执行请求意味着您正在使用会话。