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

Red*_*Nax 2 ruby-on-rails

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

谢谢!

EmF*_*mFi 9

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

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

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

  • 如果我错了,请纠正我,但我不相信每个请求都会重新加载整个环境.我的印象是在开发环境中虽然没有缓存类(因此如果更改模型或控制器则不需要重新启动服务器),ActionController不会缓存任何视图,并且每次请求都会重新绘制路由,I不要相信整个环境会重新加载,因为每个请求都不会重新加载初始化程序. (2认同)