バックグラウンド ジョブとして Web スクレイピングを行う resque ワーカーを作成しようとしています。ワーカーは Web サイトのホームページの URL を受け取り、Web スクレイピングを行ってから、結果を Redis に保存します。Redis では、5 分間保持することになっています。
以下のコードは、私が上で説明したことを達成するように見えますか?
class TrialScraper
@queue = :trial_scraper_queue
def self.perform(homepage)
hashed_site_data =
{
:homepage =>
{
:url => homepage,
:title => download_title(homepage),
:meta_tags => download_robots_tags(homepage)
},
:robots_file => download_robots_file(homepage),
}
p hashed_site_data #just to make sure it's working
REDIS.setex(homepage, 60*5, hashed_site_data.to_json)
end
現在、これは Resque の Web インターフェイスにも表示されません。
私が間違っていることは何か分かりますか?問題はデータを REDIS に送信することにあると思いますが、よくわかりません。
編集:明確にするために、ここにいくつかの詳細があります。上記のワーカーについて私が望むことは、Resque の Web インターフェイスでジョブとして表示されることです。
私のコードの最終結果は、キーと値のペアが (Resque の外部で) redis に送信されるということだけです。しかし、redis クライアントですべてのキーを一覧表示すると、キーがどこにも一覧表示されません。しかし、他のキーと一緒にホームページがリストされているはずです。