通过保持连接打开来加速OpenUri?

时间:2014-04-07 22:14:26

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4

有没有办法加速Ruby中的OpenUri连接,可能以某种方式保持流开放?

以下是我目前正在检索的数据:

doc = Nokogiri::HTML( open(url).read )

批量处理数千个URL时似乎很慢。

2 个答案:

答案 0 :(得分:2)

如果您使用OpenURI处理数千个网址,则表示您使用了错误的图书馆。相反,你应该看一些可以让你并行处理它们的东西。

我建议您使用Typhoeus and Hydra。 Typhoeus是获取URL的代码,Hydra处理多个连接。查看主页上的示例,了解一次运行多个并行连接是多么容易。

运行一些基准测试,以确定您在什么时候使主机饱和,以及您的互联网连接。尝试运行比管道更多的连接只会浪费CPU时间。另外,如果您尝试处理与同一主机的多个连接,并且过度占用其带宽和CPU,请务必小心,这是一种被禁止的好方法。

答案 1 :(得分:0)

尝试net-http-persistentrubygemsgithub)。