1

私は現在、ほんの数個の製品から数万個の製品までの170のフィードを取得して読んでいるWebサイトを持っています。彼らは平均してそれぞれ3000の製品を持っています。それに応じて、データベースの取得、読み取り、更新には数日から数週間かかります。私は仕事を1か月に分散できるので、これは実際には大きな問題ではありません(頻繁に更新されることはありません)。

私の現在の解決策は最適ではないと思いますが、フィードバックをお願いします。

  1. open-uriを使用してフィードを1つずつ取得します

  2. 次に、Nokogiriを使用してフィードを解析し、すべての製品をループします

  3. 製品が存在するかどうかに応じて、データベースで投稿を作成または更新します。

Feedzirraを調べましたが、ブログフィードの方が多いことがわかりました。物事をスピードアップし、このかなり簡単なアプローチを行うために私が調べるべき他の宝石や方法はありますか?

通常、フェッチ部分は高速部分であるため、データベースを実際に更新することで得られるものが最も多くなります。複数の更新と作成を同時に行うためのスマートな宝石やアプローチはありますか?

4

1 に答える 1

1

単一のSQLステートメントをループするのとは反対に、情報を大きなチャンクでデータベースに移動する方が高速で、ホスティングサーバーでのリソースの使用量が削減されます。ルビーに変換します。

他に考慮すべきことは、効率です。たとえば 20 個のアイテムを含む RSS フィードに、最後に見たときから新しいアイテムが 1 つしか追加されていない場合、残りの 19 個の製品ページを再度スクレイピングする必要はありません。これをコーディングするのは面倒かもしれませんが、複数のフィードにまたがるコンテンツ検索を高速化するのに役立ちます。lovelogic.net UK Job Scanner の同様の構成では、このアプローチを使用して毎日約 570 のフィードを監視しています。

于 2012-05-12T15:14:14.447 に答える