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

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍