运行parallelHttp请求使用红宝石中的Hydra的Typhoeus

时间:2012-10-19 03:53:45

标签: ruby typhoeus hydra

我正在经历http://typhoeus.github.com/articles/getting_started.html#making_parallel_requests 而且我无法理解Hydra的Typhoeus如何在实现并行HTTP请求时实现。它类似于EventMachine :: Iterator和EvenMachine :: HTTPRequest处理并发请求吗?我打算通过它的源代码,但如果有人已经知道后端发生了什么,请启发我。更好地了解Typhoeus对我有很大帮助。 谢谢!

1 个答案:

答案 0 :(得分:2)

Typhoeus是一个libcurl包装器,并不自行执行并行请求。但是它提供了一个libcurls multi的接口:http://curl.haxx.se/libcurl/c/libcurl-multi.html负责执行并行请求。这使它与Eventmachine不同,因为libcurl可以解决繁重的问题,因此您不必担心ruby代码。

更准确地说,Typhoeus(自0.5.0.alpha以来)使用Ethon:https://github.com/typhoeus/ethon而不是自己处理libcurl。如果你想看看Ethon如何使用libcurls multi,这是一个很好的起点:https://github.com/typhoeus/ethon/blob/master/lib/ethon/multi.rb

如果您想了解最新情况,您应该查看libcurl本身。