1

我有一个网站,目前正在获取和阅读 170 个提要,范围从少数产品到数万个。平均而言,他们每个人都有 3 000 种产品。相应地获取、读取和更新数据库需要几天甚至几周的时间。这实际上不是一个大问题,因为我可以在一个月内将工作分散开(它们不会太频繁地更新)。

我认为我目前的解决方案并不是最理想的,但希望得到一些反馈:

  1. 我使用open-uri来获取提要,一次一个

  2. 然后我使用Nokogiri解析提要并循环浏览所有产品

  3. 根据产品是否存在,我在数据库中创建或更新帖子。

我查看了 Feedzirra,但结果发现它更多地用于博客提要。为了加快速度并采用这种相当简单的方法,我应该研究其他任何宝石或方法吗?

获取部分通常是较快的部分,所以我从中获得的最大收益将是数据库的实际更新。是否有任何智能宝石或方法可以同时进行多个更新和创建?

4

1 回答 1

1

将信息以大块的形式移动到数据库中,因为围绕单个 sql 语句的反对循环速度更快,并减少了托管服务器上的资源使用,请参阅:https ://stackoverflow.com/a/10560813/723871代码适用于 PHP,但该技术应该翻译成红宝石。

另一个需要考虑的是效率。如果一个包含 20 个项目的 RSS 提要自您上次查看以来仅添加了一个新项目,则无需再次抓取剩余 19 个的产品页面。尽管编写代码可能会很痛苦,但它将有助于加速跨多个提要的内容检索。lovelogic.net UK Job 扫描仪上的类似配置每天使用这种方法监视大约 570 个提要。

于 2012-05-12T15:14:14.447 回答