【问题标题】:Why am I getting RuntimeError: Session collision on '...'为什么我会收到 RuntimeError:“...”上的会话冲突
【发布时间】:2012-04-22 05:52:18
【问题描述】:

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

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

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

【问题讨论】:

  • 我从未使用过 memcached,但这是我首先要看的地方......祝你好运。

标签: ruby-on-rails ruby-on-rails-3 session memcached


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2019-11-30
    • 2019-02-24
    • 2021-11-08
    • 1970-01-01
    • 2023-04-05
    • 2016-08-21
    相关资源
    最近更新 更多