2012-01-15
■[Ruby on Rails]Thinプロセスを順番に再起動する方法
「thin --onebyone restart」のように「--onebyone」オプションを付けておくと、プロセスを一つずつ再起動するようになることを知ったのでメモしておきます。
Rails アプリケーションを動作させるときに Thin を使うことがあります。再起動するときは「thin -C webapp.yml restart」などとしますが、このときに全プロセスが終了後、新しいプロセスが起動されます。一時的に全プロセスが停止した状態となるため、どうしても瞬断するタイミングが出来てしまい不便に感じていました。
瞬断を発生させずに再起動するために、設定ファイルを二つに分け、「thin -C webapp1.yml restart」「thin -C webapp2.yml restart」という具合に半分ずつ再起動するようにしていました。
thin のヘルプを見ていて気づいたのですが、「--onebyone」というオプションを指定すると、プロセスが一つずつ再起動されることを知りました。つまり、以下のようなどうさになります。
プロセスAを終了
↓
プロセスAを起動
↓
プロセスBを終了
↓
プロセスBを起動
:
「--onebyone」オプションを指定すれば、瞬断を避けるために設定ファイルを二つに分ける必要はなくなります。
トラックバック - http://d.hatena.ne.jp/benikujyaku/20120115/1326564000