【发布时间】:2015-03-12 08:17:54
【问题描述】:
我使用 unicorn 作为 Rails 服务器,我已经为它配置了 5 个 worker。
我不确定这是否会影响用户会话,所以我做了一个小实验:
puts "------"
puts session[:session_id]
puts "session obj: #{session.hash}"
puts "pid: #{Process.pid}"
这是结果
------
69db720b6620288416ae4ba6f921dfb8
session obj: -4054823339922854099
pid: 4396
------
69db720b6620288416ae4ba6f921dfb8
session obj: 4220002746750993661
pid: 4527
------
69db720b6620288416ae4ba6f921dfb8
session obj: 2637320844486598221
pid: 4396
会话ID始终相同
会话对象每次都不一样
第一个和第三个请求的 pid 相同
所以我假设 Rails 会话内容(不是单例对象,因为每个工作人员都有自己的进程,所以不能这样)在同一主服务器下的不同独角兽工作人员之间共享,但这是否记录在任何地方?
它是由 Rails 框架实现的吗?还是 unicorn_rails 这样做?
【问题讨论】:
标签: ruby-on-rails ruby session unicorn