Почему nokogiri ждет пару секунд (3-5), когда сервер занят и я запрашиваю страницы одну за другой, но когда эти запросы зацикливаются, nokogiri не ждет и выдает сообщение о тайм-ауте. Я использую блок тайм-аута, обертывающий запрос, но nokogiri вообще не ждет этого времени. Любая предлагаемая процедура по этому поводу?
# this is a method from the eng class
def get_page(url,page_type)
begin
timeout(10) do
# Get a Nokogiri::HTML::Document for the page we’re interested in...
@@doc = Nokogiri::HTML(open(url))
end
rescue Timeout::Error
puts "Time out connection request"
raise
end
end
# this is a snippet from the main app calling eng class
# receives a hash with urls and goes throgh asking one by one
def retrieve_in_loop(links)
(0..links.length).each do |idx|
url = links[idx]
puts "Visiting link #{idx} of #{links.length}"
puts "link: #{url}"
begin
@@eng.get_page(url, product)
rescue Exception => e
puts "Error getting url: #{idx} #{url}"
puts "This link will be skeeped. Continuing with next one"
end
end
end
@@eng
и@@doc
намекают на то, что у вас есть проблемы с переменной областью видимости, которых вы не понимаете. - person the Tin Man   schedule 24.01.2013