Wie würde ich eine Weile mit Net/HTTP eine Weile machen, wenn es das Timing weitergeht?

StackOverflow https://stackoverflow.com/questions/8320315

  •  25-10-2019
  •  | 
  •  

Frage

Ich habe den folgenden Code:

require 'rubygems'
require 'net/http'
require 'uri'
url = URI.parse('http://servername.tld/up.txt')
response = Net::HTTP.get_response(url)

@yes = response.body
until @yes == "yes"
  puts "It's down"
end

Die Inhalte von /up.txt ist

Jawohl

Es wird jedoch immer wieder ausgeführt, wenn es sich um den Server -Hosting handelt up.txt) ist mit dem unten:

/home/jrg/.rvm/rubies/ruby-1.9.2-p290/lib/ruby/1.9.1/net/http.rb:644:in `initialize ': Verbindung abgelehnt-Connect (2) (Errno :: Econnrefused)

Verwandt, aber nicht geholfen:Warum bekomme ich "errno :: econnrefused" mit 'net/http' in Rails?

Muss ich etwas anderes als etwas anderes als verwenden Net::HTTP?

War es hilfreich?

Lösung

Setzen Sie einfach den Teil ein, der die Ausnahme in einen Rettungsblock bringt.

def up?(url)
  begin
    Net::HTTP.get_response(url).body == "yes"
  rescue Errno::ECONNREFUSED
    false
  end
end

until up?(url)
  puts "It's down"
end

Andere Tipps

Sie mögen Open-uri, es ist viel ordentlicher:

require 'open-uri'
sleep 10 until response = open(url).read rescue nil
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top