40歳からのキャリアチェンジ

20代はエンジニア・PM、30代はWeb系エンジニア向けのキャリアアドバイザー。40代の今はフリーランスで開発含めて色々やってます。技術ネタとしてはRuby/RailsとJavaScript関連あたり

029-クロール状況を管理する方法について試行錯誤

各ブロガー別にサイトの更新状況をチェックするクローラーを動作させるという仕様を考えているため、どこまでクロール済かを管理する仕組みを作る必要があるかと思っています。

処理を待つ一連のジョブを管理するクラスとしてひとまずqueueというクラスを作りました。(なんかネーミングがよしっくり来てないので、もうちょっといいのが思いついたら変更する)

require 'rubygems'
require 'mongoid'
Mongoid.configure do |config|
  name = "test"
  host = "localhost"
  config.master = Mongo::Connection.new.db(name)
  config.slaves = [
    Mongo::Connection.new(host, 27017, :slave_ok => true).db(name)
  ]
  config.persist_in_safe_mode = false
end

class Queue
  include Mongoid::Document
  field :nickname
  field :first_entry
  field :last_entry
  field :last_update
end
queue = Queue.new()

# これ以降で実際のブロガー情報を登録してる。
queue.nickname = 'xxxxx'
queue.first_entry = 'http://blog.pasonatech.co.jp/xxxxx/somepage1.html'
queue.last_update = Time.now.strftime("%Y-%m-%d %H:%M:%S")
queue.last_entry = 'http://blog.pasonatech.co.jp/xxxxx/somepage2.html'
queue.save

xxxxというブロガーの方の初回エントリのURLと、最後にクロールした日付とそのURLをMongoDB上に格納出来ました。(ひとまず残りのブロガーの情報も同様の手順で登録する予定)

今後書きたいこと

  • このqueueとcrawlerを連携させれば思い通りに動くかどうか確認
  • こちらを参考に利用予定の本番環境( Heroku+MongoHQ)のセットアップ