我们正在使用 unicorn 和通常的零停机时间部署设置为我们的 Rails 应用程序进行零停机时间部署。(我们没有使用示例中的确切设置,但情况相似)。
这曾经有效,但在我们升级到 Rails 3.2 的过程中,我们遇到了一个奇怪的问题:
- 老独角兽大师得到
USR2
- 新主人诞生
- 然而,老主人永远不会终止,而且似乎完全没有反应
QUIT
。 - 旧主人仍然会对
WINCH
所有工作人员做出反应并关闭它,并且可以关闭它TERM
- 但优雅的关闭是行不通的
我们确实尝试从主进程关闭数据库连接,但如果它仍然保持 Redis 连接(如果这会导致问题),则不是完全的。