anemoneを使ってページ全体をクロールしようとするとメモリをやたら食います。
どうやらこれはデータをメモリにキャッシュしているかららしい。
というわけで、キャッシュをmongodbに保存するようにして、解決する。
まずはyumリポジトリを追加
# sudo vim /etc/yum.repos.d/10gen-mongodb.repo
name=10gen Repository
baseurl=http://downloads.mongodb.org/distros/centos/5.4/os/x86_64/
gpgcheck=0
enabled=0
これを書きこんで保存。
で、必要なものをインストール。
# sudo yum install mongo-10gen mongo-10gen-server
# sudo gem install bson_ext SystemTimer
で、起動する。
# sudo /etc/init.d/mongod start
mongodbを使うように書きなおす。
require 'rubygems'
require 'anemone'
# mongodbを使うのとquery_stringsは取得しないように設定。またアクセス間隔を2秒にする。
opts = {
:storage => Anemone::Storage.MongoDB,
:skip_query_strings => true,
:delay => 2,
}
Anemone.crawl("http://example.com/", opts) do |anemone|
anemone.on_every_page do |page|
puts page.url
end
end
end
参考;
http://work.blog.eggplant.org.uk/2011/03/web-anemone.html
0 件のコメント:
コメントを投稿