どうも。バックエンドエンジニアの吉田です。 前回は1サイトをクロールする際の最適化戦略としてRedisベースの分散ロック機構を使った実例を紹介しました。 前回の記事:Redis::DistMutex – 時限付き分散ロックで効率良くサイトクロールをしよう 今回は複数サイトに対する処理をResqueを使って最適化した事例を紹介したいと思います。 ※ランダムにキューをlistenする話の予定でしたが、話がとっ散らかるので主題を変更しました。 主なキーワードとしては、「Resqueのキュー分割」、「Rubyでクラス定義を動的生成」といった感じです。 おさらい 前回使った図を使います。 iQONのクローラーは、提携サイトの商品一覧から商品ページのURLを取得し、ページをダウンロードする処理(fetchフェーズ)を必要な数だけWorkerプロセスとして起動しておき、Resqueを使って処理をして
![Resqueで複数サイトにまたがるクローリングを最適化しよう | VASILY DEVELOPERS BLOG](https://cdn-ak-scissors.b.st-hatena.com/image/square/a1556b24c5ea941f1ad0d9f3aa3b642dde4630e0/height=288;version=1;width=512/http%3A%2F%2Ftech.vasily.jp%2Fwp-content%2Fuploads%2F2013%2F11%2Fcrawler-overview.jpg)