为什么服务器需要在更新模型文件时重新启动?

时间:2009-11-26 04:29:48

标签: ruby-on-rails

我想知道为什么每次更新模型文件时都需要重启服务器(Mongrel / WEBrick)?我知道如果你不这样做它就不会被加载 - 但有没有任何文件可以解释为什么会这样做?

谢谢!

1 个答案:

答案 0 :(得分:9)

如果更改模型,开发环境不需要您重新启动服务器。如有必要,他们将为每个请求重新加载环境。

生产环境是另一回事。在生产环境中运行的Rails服务器(mongrel / passenger / webrick / etc)只会在进程启动时加载一次Rails环境。这需要几秒钟,您可能会注意到在启动控制台时也会加载Rails环境。为了避免每个请求的开销,服务器将从加载的环境中生成一个新线程来处理每个传入的请求。

因为服务器只响应HTTP请求和通常的信号。除了始终加载新环境(如开发环境或重新启动服务器)之外,没有好办法强制环境重新加载。