相关疑难解决方法(0)

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|
  u['content'] = Net::HTTP.get( URI.parse(u['link']) )
end

print urls
Run Code Online (Sandbox Code Playgroud)

这将作为程序代码.我只想打一个服务器,没有关于订单的问题.我怎么能在红宝石中做到这一点.一种选择是使用线程.

这是使用线程的示例.

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
Run Code Online (Sandbox Code Playgroud)

更好的解决方案.. ??

PS: - 我想点击mixpanel,这就是为什么我只想进行http调用而不等待响应.

ruby ruby-on-rails http ruby-on-rails-3 mixpanel

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

http ×1

mixpanel ×1

ruby ×1

ruby-on-rails ×1

ruby-on-rails-3 ×1