有没有办法加速Ruby中的OpenUri连接,可能以某种方式保持流开放?
以下是我目前正在检索的数据:
doc = Nokogiri::HTML( open(url).read )
批量处理数千个URL时似乎很慢。
答案 0 :(得分:2)
如果您使用OpenURI处理数千个网址,则表示您使用了错误的图书馆。相反,你应该看一些可以让你并行处理它们的东西。
我建议您使用Typhoeus and Hydra。 Typhoeus是获取URL的代码,Hydra处理多个连接。查看主页上的示例,了解一次运行多个并行连接是多么容易。
运行一些基准测试,以确定您在什么时候使主机饱和,以及您的互联网连接。尝试运行比管道更多的连接只会浪费CPU时间。另外,如果您尝试处理与同一主机的多个连接,并且过度占用其带宽和CPU,请务必小心,这是一种被禁止的好方法。
答案 1 :(得分:0)