require 'net/http'
urls = [
{'link' => 'http://www.google.com/'},
{'link' => 'http://www.facebook.com/'},
{'link' => 'http://www.yahoo.com/'}
]
urls.each do |u|
u['content'] = Net::HTTP.get(URI.parse(u['link']))
end
print urls
这将作为程序代码工作..我只想打一台服务器,没有关于订单的问题。我怎么能做到这一点在红宝石。一种选择是使用线程。ruby中的异步http请求
下面是一个使用线程的例子。
require 'net/http'
urls = [
{'link' => 'http://www.google.com/'},
{'link' => 'http://www.facebook.com/'},
{'link' => 'http://www.yahoo.com/'}
]
urls.each do |u|
Thread.new do
u['content'] = Net::HTTP.get(URI.parse(u['link']))
puts "Successfully requested #{u['link']}"
if urls.all? {|u| u.has_key?("content") }
puts "Fetched all urls!"
exit
end
end
end
任何更好的解决方案.. ??
PS: - 我想打mixpanel,所以这就是为什么我只想做一个http调用,不要等待响应。
只是想知道:你在Ruby或Rails的编码? – apneadiving
铁轨,问题标记为铁轨3 :) –
好的,不确定。无论如何,它不会改变我的答案:) – apneadiving