为什么我会收到运行时错误:'...'上的会话冲突



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

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

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

我不知道

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 之间的同一会话。

最新更新