2017-08-06 7 views
0

Je veux obtenir un problème, où nous allons manuellement et vérifier une webapp/serveur s'il est haut/bas. Je veux construire une application rails qui peut automatiser cette tâche.Rails application pour vérifier l'état d'un serveur

Considérez mon URL app est: HostName: PORT/Route Params (peut ou peut ne pas avoir le port dans l'URL)

J'ai vérifié 'net/http'

def check_status() 
     @url='host' 
     uri = URI(@url) 
     http = Net::HTTP.new(@url,port) 
     response = http.request_get('/<route>?<params>') 
     if response == Net::HTTPSuccess 
     @result='Running' 
     else 
     @result='Not Running' 
     end 
    end 

Je suis face à erreur à,

response = http.request_get('/<route>?<params>') 

lorsque l'application est jetant « Impossible d'ouvrir une connexion TCP à l'URL » qui est correct.

Pouvez-vous m'aider à trouver une nouvelle solution ou comment puis-je améliorer la mise en œuvre ci-dessus?

Répondre

1

Comme cela fonctionne comme prévu et que vous avez juste besoin de gérer l'erreur renvoyée lorsque l'application est hors service, enveloppez-la dans un bloc de secours.

def check_status() 
     @url='host' 
     uri = URI(@url) 
     http = Net::HTTP.new(@url,port) 
     begin 
     response = http.request_get('/<route>?<params>') 
     rescue TheClassNameOfThisErrorWhenSiteIsDown 
      @result = 'Not Running' 
     end 
     if response == Net::HTTPSuccess 
      @result='Running' 
     else 
      @result='Not Running' 
     end 
     end 
    end 
+1

Salut, Merci pour l'info. J'ai fait usage de bloc de sauvetage et fait quelques ajustements. Cela fonctionne bien maintenant. – mRbOneS