2010-01-21 93 views
0

我正在转向从PHP的Ruby/Rails,我一直很好奇的一件事是,如果我想做一个实时更改的PHP,我可以简单地编辑文件,单击保存,它是活动的(假设我正在编辑现场环境);没有应用程序为我的用户重新部署或停机。重新部署应用程序时,活动用户会话会发生什么情况?

随着rails,几乎所有我做出的更改,需要重新部署应用程序(我认为?)。

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

对不起,如果这有一个明显的答案,但我看不到它在我的书/教程。谢谢

回答

1

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

+0

数据库不一定是最好的方法。事实上,我认为这是最糟糕的方式之一。使用memcached将它们存储在内存中会更好。 – jonnii 2010-01-21 21:55:24

0

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

2

Rails在Cookie中存储会话(默认情况下),因此在部署后您不会丢失会话。大多数操作都是无状态的,只要通过params或url地址(路由)传递就可以了。

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

0

你可以看看production.rb环境,为行

config.cache_classes = true 

如果您有它设置为false,你会(在某些情况下),可以申请不重新部署的变化(即服务器重启)。

相关问题