0

必要な特定の情報を検索して返す Web クローラーがあります。これは毎日実行されます。

問題は、私のクローラーが 2 つのことをしなければならないことです。

  1. クロールするリンクを取得します。
  2. リンクをクロールして、データベースにプッシュします。

#1 の問題は、合計で 700 以上のリンクがあることです。これらのリンクはそれほど頻繁に変更されるわけではなく、1 か月に 1 回程度でしょうか。

したがって、1 つのオプションは、月に 1 回「リンクのリスト」を個別にクロールし、リンクをデータベースにダンプすることです。

次に、これらの 700 個のリンクのそれぞれについて、毎日クローラーに db ヒットを実行させます。

または、クローラー内でネストされたクロールを行うこともできます。クローラーが (毎日) 実行されるたびに、この 700 個の URL のリストを更新して配列に保存し、この配列から取得して各リンクをクロールします。

より効率的で、Heroku への負担が少ないのはどれですか? またはどちらのホストですか?

4

1 に答える 1

3

「効率」と「課税」をどのように測定するかによって異なりますが、ローカル データベース ヒットは、HTTP 要求 + リンクの HTML(?) 応答の解析よりも高速で「優れている」ことはほぼ確実です。

さらに、それはおそらく重要ではありませんが、(データベースとアダプターがサポートしていると仮定すると) DB 要求の結果を繰り返し処理し、セット全体を待機したりメモリにフェッチしたりすることなく処理を開始できます。

ネットワークの遅延とリソースは、既に存在し、実行されており、効率的かつ迅速にクエリされるように設計された DB を突っ込むよりもはるかに悪くなります。

ただし:1日1回?このタスクの最適化にエネルギーを費やす正当な理由はありますか?

于 2012-06-19T22:55:57.757 に答える