0
我使用eventmachine來創建很多http查詢。 Http服務器可以執行這些連接。 但是對100個查詢定期調用5-7 errback。 爲什麼會這樣?很多查詢到eventmachine
require 'rubygems'
require 'eventmachine'
require 'em-http'
urls = []
100.times do
urls << 'http://127.0.0.1/'
end
if urls.size < 1
puts "Usage: #{$0} <url> <url> <...>"
exit
end
pending = urls.size
EM.run do
urls.each do |url|
http = EM::HttpRequest.new(url).get
http.callback do
puts "#{url}\n#{http.response_header.status} - #{http.response.length} bytes\n"
pending -= 1
EM.stop if pending < 1
end
http.errback do
puts "E::#{url}\n" + http.error.to_s
pending -= 1
EM.stop if pending < 1
end
end
end
}
什麼樣的錯誤?這可能與連接的另一端有關,例如,如果其他服務器只能處理50個併發連接,它可能會在超出連接時開始拒絕連接 – 2011-12-26 18:18:07
僅供參考,您可能需要查看[Typhoeus及其關聯Hydra](https://github.com/dbalatero/typhoeus),如果你想異步執行多個HTTP請求。 – 2011-12-26 20:48:38