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
もオプションとして渡せることがわかる。
knt45
2366Contribution