我想在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
有什麼想法?