Выполнение параллельных запросов HTTP с использованием Typhoeus с Hydra в ruby

Я просматривал http://typhoeus.github.com/articles/getting_started.html и не мог понять, как на самом деле добиться успеха Typhoeus с Hydra в обеспечении возможности параллельных HTTP-запросов. Это похоже на EventMachine::Iterator и EvenMachine::HTTPRequest для обработки одновременных запросов? Я планирую просмотреть его исходный код, но если кто-то уже знает, что происходит на заднем плане, пожалуйста, просветите меня. Это поможет мне лучше понять Typhoeus. Спасибо!

1 ответ

Решение

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.

Другие вопросы по тегам