La manipulation erreur de dépassement de Délai

Après l'utilisation de délai d'attente:

 status = Timeout::timeout(5) {
  # Something that should be interrupted if it takes too much time...
}

J'ai eu cette erreur de dépassement de Délai:

/Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:644:in `initialize': execution expired (Timeout::Error)
    from /Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:644:in `open'
    from /Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:644:in `block in connect'
    from /Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/timeout.rb:44:in `timeout'
    from /Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/timeout.rb:87:in `timeout'
    from /Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:644:in `connect'
    from /Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:637:in `do_start'
    from /Users/galharth/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/net/http.rb:632:in `start'
    from /Users/galharth/.rvm/gems/ruby-1.9.2-p136/gems/mechanize-1.0.0/lib/mechanize.rb:527:in `fetch_page'
    from /Users/galharth/.rvm/gems/ruby-1.9.2-p136/gems/mechanize-1.0.0/lib/mechanize.rb:259:in `get'

Que dois-je faire?

status = Timeout::timeout(5) { puts "ok" } Échoué?
Je viens de le tester sur ruby1-9-2-p180 - pas de problème
Mon instinct me dit que vous devriez faire un effort pour éviter le délai d'attente de se produire, si possible. Pouvez-vous partager cette requête unique en plusieurs petites requêtes?
Vous ne pouvez pas contrôler le comportement de l'internet. Une demande pour une petite page peut prendre quelques minutes. Il n'a rien à voir avec le nombre de demandes, c'est la réceptivité de l'hôte retour de la demande.
Que tout dépend de la raison de la lenteur du temps de réponse. Si l'appel d'API est lent parce que c'est le retour d'un grand nombre de données, vous pourriez probablement briser cet appel en de nombreux petits appels. Donc, non, vous n'êtes pas toujours à l'instigation de l'Internet.

OriginalL'auteur gal | 2011-04-07