这是一个非常简单的例子,我得到了根光纤错误。
require 'em-synchrony'
require 'em-synchrony/em-http'
urls = %w{http://www.google.com http://www.google.com http://www.google.com http://www.google.com http://www.google.com http://www.google.com}
EM.synchrony do
EM::Synchrony::Iterator.new(urls, 2).each(
proc { |url, iter|
EM::HttpRequest.new(url).get
iter.next
}
)
end我可以在这里使用async,但不能使用sync http请求。
发布于 2013-06-26 01:12:30
看起来如果我要使用sync get请求,我应该使用FiberIterator。
require 'em-synchrony'
require 'em-synchrony/em-http'
require "em-synchrony/fiber_iterator"
urls = %w{http://www.google.com http://www.google.com http://www.google.com http://www.google.com http://www.google.com http://www.google.com}
EM.synchrony do
EM::Synchrony::FiberIterator.new(urls, 2).each(
proc { |url|
EM::HttpRequest.new(url).get
}
)
endhttps://stackoverflow.com/questions/17301253
复制相似问题