定期下载多个XML产品Feed。注意事项?

时间:2012-05-10 10:53:25

标签: ruby-on-rails feeds

我有一个网站,目前正在提取和阅读170种供稿,范围从几种产品到数万种。平均而言,每个产品有3 000种产品。因此,获取,读取和更新数据库需要几天甚至几周的时间。这实际上不是一个大问题,因为我可以在一个月内完成工作(它们不会过于频繁地更新)。

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

  1. 我使用 open-uri 一次抓取一个Feed

  2. 然后我使用 Nokogiri 解析Feed并遍历所有产品

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

  4. 我调查了Feedzirra,但事实证明它更适合博客提要。我是否应该研究其他任何宝石或方法以加快速度并采用这种相当直接的方法?

    提取部分通常是更快的部分,因此我获得的最多部分将是数据库的实际更新。是否有任何智能宝石或方法可以同时进行多项更新和创建?

1 个答案:

答案 0 :(得分:1)

将信息以大块的形式移动到数据库,因为围绕单个sql语句进行oppsosed循环更快,并减少托管服务器上的资源使用情况,请参阅:https://stackoverflow.com/a/10560813/723871代码适用于PHP,但该技术应转换为ruby。 / p>

需要考虑的是效率。如果一个包含20个项目的RSS源自上次查看后只添加了一个新项目,则无需再次删除剩余19个项目的产品页面。虽然这可能是代码的痛苦,但它将有助于增加跨多个源的内容检索。在lovelogic.net英国工作扫描仪上的类似配置使用这种方法每天观察大约570个饲料。

相关问题