我想在Ruby中发出多个HTTP请求。我知道它可以很容易地在NodeJS中完成。我正在尝试在Ruby中使用线程来完成它,但我不知道这是否是最好的方法。我没有成功运行大量的请求(例如超过50)。有没有更好的方法在Ruby中异步执行多个HTTP请求?
require 'json'
require 'net/http'
urls = [
{"link" => "url1"},
{"link" => "url2"},
{"link" => "url3"}
]
urls.each_value do |thing|
Thread.new do
result = Net::HTTP.get(URI.parse(thing))
json_stuff = JSON::parse(result)
info = json["person"]["bio"]["info"]
thing["name"] = info
end
end
# Wait until threads are done.
while !urls.all? { |url| url.has_key? "name" }; end
puts urls
有什么想法?