http_status_checker URLのステータスを取得するgemを作りました


俺の勉カレ』で収集中の勉強会のリンクは、開催を取りやめたなどの理由で404になる場合がありました。そのため、定期的にhttp statusをチェックするしくみを作りたくて、『morizyun/http_status_checker
というRubyGemを作りました!


😸 特徴

* 簡単に複数のURLのHTTPステータスをチェックできる
* ホスト単位にスレッドを生成するので早い
* 一つのホストに負荷をかけ過ぎないようにinervalの待ち時間を設定できる
* リダイレクトやエラーをURL単位で取得できる

🗽 インストール手順

いつ戻おりGemfileに以下を追加。

# http status checker
gem 'http_status_checker'

そして次のコマンドを実行してインストールしてください。(パスは適宜変更)

bundle install --path vendor/bundle --jobs=4

もしくはコマンドライン上で次のコマンドを実行。

gem install http_status_checker

🐰 コマンドラインから使い方

Gemをインストールしたら、http_status_checkerをコマンドラインから呼び出すことができます。

$ http_status_checker -u http://morizyun.github.io
#=> url: http://morizyun.github.io
#=> response: {:code=>"200", :is_alive=>true, :redirect_url=>nil}

🐹 Rubyプログラム内での使い方

Rubyプログラムから呼び出すこともできます。引数のinterval_secは任意なので省略可能です。
省略した場合のデフォルトのインターバルは1秒です。(相手サイトに大量にアクセスしないように)

require 'http_status_checker'
urls = ['http://morizyun.github.io', 'http://www.yahoo.co.jp']
interval_sec = 1
HttpStatusChecker.check urls, interval_sec
#=> [{"http://morizyun.github.io"=>{:code=>"200", :is_alive=>true, :redirect_url=>nil}},
#=> {"http://www.yahoo.co.jp"=>{:code=>"200", :is_alive=>true, :redirect_url=>nil}}]

🎉 Issue/Pull Request大歓迎

定期的にURLの死活チェックをしたり、ユーザーから投稿されたURLチェックなどに使えると思います。
もしお気付きの点があれば、いつでもIssue / Pull Requestお待ちしています^^

morizyun/http_status_checker

📚 おすすめの書籍