【问题标题】:What happens to active user sessions when you redeploy an application?当您重新部署应用程序时,活动用户会话会发生什么情况?
【发布时间】:2010-01-21 21:44:00
【问题描述】:

我正在从 php 迁移到 ruby​​/rails,而我一直很好奇的一件事是,如果我想在 php 中进行实时更改,我可以简单地编辑文件,单击保存,它就是活动的(假设我正在实时环境中进行编辑);我的用户无需重新部署应用程序或停机。

使用 Rails,几乎所有我所做的更改都需要重新部署应用程序(我认为?)。

当我重新部署实时应用程序时,正在使用该应用程序的所有实时用户会话会发生什么情况,是否会强制他们退出并要求他们重新登录?如果他们在重新部署应用程序时刷新,他们会看到错误吗?

很抱歉,如果这有一个明显的答案,但我在我的书籍/教程中看不到它。谢谢

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    Rails 将会话存储在 cookie 中(默认情况下),因此您不会在部署后丢失它。而且大多数动作都是无状态的,你想要的都是通过参数或url地址(路由)传递的。

    您的用户在您部署时看到的内容取决于您的服务器和部署策略。

    【讨论】:

      【解决方案2】:

      当您在 PROD 设置中运行 rails 应用程序时,您必须重新启动服务器才能使代码生效。您可以选择将会话存储在数据库、文件存储、cookie 中。 Cookie 对您可以使用的大小有限制。所以最好的方法是使用数据库,它会在会话重启时存储你的会话。

      【讨论】:

      • 数据库不一定是最好的方法。事实上,我认为这是最糟糕的方式之一。最好使用 memcached 将它们存储在内存中。
      【解决方案3】:

      Rails 支持多种存储会话的方式,包括数据库和文件存储。在这种情况下,他们不必重新登录。您必须重新启动服务器才能部署 Rails 代码更改,但这通常需要几秒钟。

      【讨论】:

        【解决方案4】:

        你可以看看production.rb环境换行

        config.cache_classes = true
        

        如果您将其设置为 false,您将(在某些情况下)无需重新部署(即服务器重启)即可应用更改。

        【讨论】:

          猜你喜欢
          • 2014-11-12
          • 1970-01-01
          • 2023-03-07
          • 2019-10-27
          • 1970-01-01
          • 1970-01-01
          • 2013-03-10
          • 2014-10-25
          • 1970-01-01
          相关资源
          最近更新 更多