酒と泪とRubyとRailsと

Ruby on Rails と Objective-C は酒の肴です!

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

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


特徴

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

インストール手順

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

1
2
# http status checker
gem 'http_status_checker'

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

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

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

1
gem install http_status_checker

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

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

1
2
3
$ 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秒です。(相手サイトに大量にアクセスしないように)

1
2
3
4
5
6
7
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

おすすめの書籍