HTML レイアウトの変更など、Rails アプリに少し変更を加えたとします。Unicorn でローリング再起動を行うにはどうすればよいですか? 事実上、最新バージョンの Rails アプリ用にユニコーン プロセス (または代わりにワーカー?) を起動し、古いユニコーン プロセス/ワーカーから新しいプロセス/ワーカーにアトミックにトラフィックを切り替えたいと考えています。Google 検索から、これを行う方法とそれを取り巻くすべての落とし穴について、具体的で決定的な説明を得ることができませんでした。
質問する
2032 次
1 に答える
5
複数の方法がありますが、そのうちの 1 つが次のとおりです。
- SIGUSR2 をマスター プロセスに送信します。Unicorn は、古いマスターと古いワーカー プロセスと並行して動作するワーカー プロセスで新しいマスターを開始します。
- 新しいマスター プロセスとワーカー プロセスが開始されるまで待ちます。
- 古いマスターを殺します。
ソース: http://unicorn.bogomips.org/SIGNALS.html
ただし、これはあまりメモリフレンドリーではありません。一時的に 2 倍のメモリ使用量が必要になります。
Phusion Passenger Enterpriseはローリング再起動を (他の優れた機能と共に) サポートしていますが、プロセスを 1 つずつ再起動するため、多くのメモリは必要ありません。TTIN および TTOUT シグナルを使用して Unicorn で 1 つずつローリング再起動をスクリプト化することは可能ですが、Phusion Passenger はスクリプト化せずにすべてを自動的に実行します。
于 2012-10-23T23:28:08.527 に答える