Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away