5

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

4

1 回答 1

5

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

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

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

不过,这对内存不是很友好。您暂时需要两倍的内存使用量。

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

于 2012-10-23T23:28:08.527 回答