0

我收到了很多会话冲突异常。通常每天至少一个,但有时我部署并连续获得 2-3 个,然后什么也没有。

该应用程序在 Rails 3.2.2 和 unicorn 上运行,会话存储在 memcached 中。

异常发生在不同控制器的不同位置,我真的无法找到它们的共同点。这可能是什么原因造成的?

4

1 回答 1

0

我不知道 ruby​​/rails 如何使用 memcached 处理会话数据,但通常工作如下:

new session    -> using command ADD
update session -> using GET with token and than the command CAS (check and set)

如果存在哈希冲突,则命令 ADD 将失败,因为会话已经存在。另一个可能的问题是,如果另一个进程更新了 GET 和 CAS 之间的同一会话。

于 2012-04-10T14:25:42.330 回答