Если вы можете смотреть за пределы EventMachine, Typhoeus - это простой в использовании HTTP-клиент, который поставляется с Hydra, что дает возможность обрабатывать несколько запросов параллельно.
Я использовал его для пары вещей, и его легко настроить. Это некоторый непроверенный код, вырванный из того, что я написал на днях:
require 'typhoeus'
hydra = Typhoeus::Hydra.new(:max_concurrency => 10)
urls.each do |url|
request = Typhoeus::Request.new(url)
request.on_complete do |resp|
filename = resp.request.url.split('/').last
puts "writing #{filename}"
File.open(filename, 'w') do |fo|
fo.write resp.body
end
end
puts "queuing #{ url }"
hydra.queue(request)
end
hydra.run