rack-healthというgemのソースコードを読んだ

  • 1
    いいね
  • 0
    コメント

Sisito のGemfileを読んでいて、rack-healthというgemの存在を知った。

https://github.com/mirakui/rack-health

シンプルなRackミドルウェアで、使い方はREADMEを読めばすぐにわかるようになっている。
ヘルスチェック用のインタフェースを追加してくれるミドルウェア。

特に良いなあと思ったはsick conditionという機能で、

use Rack::Health, :sick_if => lambda { File.exist?('/tmp/service_out') }

上記のようにconfig.ruに書けば、/tmp/service_outというファイルが存在する場合のみ、503 Service Unavailableを返すようにできる。

ソースコード本体が全部で26行と短いので、Rackミドルウェアの初歩を知るためのとっかかりとしてもよいと思う。

https://github.com/mirakui/rack-health/blob/master/lib/rack/health.rb

READMEには:path:sick_ifしか紹介されていないけど、ソースコード読めば:body:status:headersもオプションとして渡せることがわかる。