全局变量是否在实例之间共享? Ruby on rails + Unicorn + Nginx

时间:2016-01-28 06:10:37

标签: ruby-on-rails ruby nginx global-variables unicorn

我们有一个RoR应用程序,我们使用了一个全局变量。

当我们尝试来自多个浏览器的HTTP个请求时,只需几秒钟即可获得nil,再过几秒钟后,它会再次获得值。

不确定这里发生了什么,全局变量是在多个HTTP请求之间共享的,还是由于在那里创建了延迟?

如果我获得有关全局变量的更多详细信息,将会更有帮助。

1 个答案:

答案 0 :(得分:3)

  再过几秒钟再次刷新它就会充满价值。

这可能与您等待几秒钟的事实无关。如果刷新浏览器时有任何问题,nginx会将您的请求转发给不同的 Ruby进程,而不是之前的请求。

全局变量只在同一个进程中是全局的 - 如果您正在运行2个Ruby进程,并且在第一个中设置一个全局变量,那么第二个将不会看到这个。

如果您真的想在多个进程之间共享数据,那么使用数据库是标准方法。