我正在尝试在 Ruby 中发出多个 HTTP 请求。我知道它可以很容易地在 NodeJS 中完成。我正在尝试使用线程在 Ruby 中执行此操作,但我不知道这是否是最好的方法。我还没有成功运行大量请求(例如超过 50 个)。
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
有什么想法吗?