【问题标题】:How to do rolling restart with Unicorn?如何使用 Unicorn 进行滚动重启?
【发布时间】:2012-10-21 05:34:29
【问题描述】:

假设我对我的 rails 应用程序进行了一些更改,例如更改 html 布局。我将如何使用 Unicorn 进行滚动重启?实际上,人们想为最新版本的 rails 应用程序调出独角兽进程(或工人?),然后自动将流量从旧的独角兽进程/工人切换到新的进程/工人。从 Google 搜索中,我无法获得关于如何执行此操作以及围绕它的所有问题的具体明确解释。

【问题讨论】:

    标签: ruby-on-rails unicorn


    【解决方案1】:

    有多种方法,但其中一种如下:

    • 将 SIGUSR2 发送到主进程。 Unicorn 使用工作进程启动一个新的主进程,该主进程与您的旧主进程和旧工作进程并行运行。
    • 等到新的主进程和工作进程启动。
    • 杀了老主人。

    来源:http://unicorn.bogomips.org/SIGNALS.html

    虽然这对内存不太友好。您暂时需要两倍的内存使用量。

    Phusion Passenger Enterprise 支持滚动重启(以及其他很酷的功能),但它会一个接一个地重启进程,因此不需要太多内存。可以使用 TTIN 和 TTOUT 信号在 Unicorn 中编写一对一的滚动重启脚本,但 Phusion Passenger 会自动为您完成所有操作,无需编写脚本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多