2011-10-01 社内勉強会でUnicornについて発表したけどあまりの準備不足に全俺が泣いたので少しずつまとめていく〜その5 タイムアウト(Application Timeoutsより) アプリケーションとタイムアウトに関する考察がされている様子。 ネットワークの信頼性は保証されないため、外部リソースとやりとりする場合はタイムアウトを設定可能であることが重要 タイムアウトできるノンブロッキングI/OとIO.selectを使うこと RubyのTimeoutモジュールは必ずしも信頼できるとは限らない 割り込みやタイムアウトを適切に行えないC拡張などがある タイムアウト後にensureによってタイムアウトが無効かされてしまうかもしれない Timeoutモジュールを使うのは最終手段で、IO.select(もしくは類似のもの)が最も信頼できる Unicornのタイムアウト機構は最終手段(ただし、ワーカープロセスの再起動くらい高価な処理)