5

HTML レイアウトの変更など、Rails アプリに少し変更を加えたとします。Unicorn でローリング再起動を行うにはどうすればよいですか? 事実上、最新バージョンの Rails アプリ用にユニコーン プロセス (または代わりにワーカー?) を起動し、古いユニコーン プロセス/ワーカーから新しいプロセス/ワーカーにアトミックにトラフィックを切り替えたいと考えています。Google 検索から、これを行う方法とそれを取り巻くすべての落とし穴について、具体的で決定的な説明を得ることができませんでした。

4

1 に答える 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 に答える