当我触摸restart.txt时,Phusion Passenger是否正常重启

时间:2010-02-04 17:23:35

标签: ruby-on-rails passenger

它会在重启之前完成所有当前请求的服务吗?

3 个答案:

答案 0 :(得分:4)

简短回答:是的!

实际上,它将允许当前请求完成,并以新版本提供新请求。 我试图找到对此的参考,但暂时找不到任何内容。

答案 1 :(得分:2)

我的印象是,当触摸restart.txt时,每个乘客应用程序实例都会死 AFTER 处理请求,而不是重新启动 BEFORE 下一个请求。因此,每位乘客都会有一个请求延迟。当进程退出并且应用程序生成器只生成一个新实例时,我不会称之为“优雅”。

这意味着对应用程序的单个实例的下一个请求将由该实例的版本回答,然后退出(在完成其工作之后)。当前正在运行的请求不会被杀死。

答案 2 :(得分:0)

来自documentation

  

“如果您使用passenger-config restart-app或restart.txt或重新启动应用程序,那么Passenger永远不会在重新启动期间丢弃任何请求。”

also

  

“在关闭或重新启动应用程序之前,乘客执行两项>操作:

     
      
  1. 它等待直到路由到该进程的现有请求完成。这样,现有请求将正常完成。
  2.   
  3. 它将中止WebSocket连接。这是因为WebSocket连接可以在任意时间内保持打开状态,并会阻止关机/重新启动。”
  4.