Unicorn と通常のゼロ ダウンタイム デプロイ セットアップを使用して、Rails アプリのゼロ ダウンタイム デプロイを行っています。(例からの正確なセットアップは使用しませんが、似ています)。
これは以前は機能していましたが、Rails 3.2 へのアップグレード中に奇妙な問題に遭遇しました。
- 古いユニコーンマスターが取得します
USR2
- 新しいマスターが生成されます
- ただし、古いマスターは決して終了せず、まったく反応していないようです
QUIT
。 - 古いマスターは引き続き
WINCH
すべてのワーカーに反応してシャットダウンし、TERM
- でシャットダウンできますが、グレースフル シャットダウンは機能しません。
マスター プロセスからデータベース接続を閉じようとしますが、まだ Redis 接続を保持している場合 (およびそれが問題を引き起こす場合) は完全ではありません。