Ruby on rails 用于检查服务器状态的Rails应用程序

Ruby on rails 用于检查服务器状态的Rails应用程序,ruby-on-rails,http,weblogic,net-http,Ruby On Rails,Http,Weblogic,Net Http,我想解决一个问题,我们手动去检查一个webapp/服务器是否正常。我想构建一个rails应用程序来自动完成这项任务 假设我的应用程序url为:主机名:端口/路由?参数(url中可能有端口,也可能没有端口) 我选中了“net/http” def check_status() @url='host' uri = URI(@url) http = Net::HTTP.new(@url,port) response = http.request_get('

我想解决一个问题,我们手动去检查一个webapp/服务器是否正常。我想构建一个rails应用程序来自动完成这项任务

假设我的应用程序url为:主机名:端口/路由?参数(url中可能有端口,也可能没有端口)

我选中了“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
def check_status()
@url='host'
uri=uri(@url)
http=Net::http.new(@url,port)
response=http.request_get(“/?”)
如果响应==Net::HTTPSuccess
@结果='Running'
其他的
@结果=“未运行”
终止
终止
我面临着错误

response = http.request_get('/<route>?<params>')
response=http.request\u get(“/?”)
当应用程序向下抛出“无法打开到URL的TCP连接”,这是正确的


你们能帮我找到一些新的解决方案吗?或者我该如何改进上述实现?

由于它按预期工作,您只需要处理应用程序关闭时返回的错误,请将其包装在救援块中

    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
def check_status()
@url='host'
uri=uri(@url)
http=Net::http.new(@url,port)
开始
response=http.request_get(“/?”)
在下山时营救他们的类名
@结果='未运行'
终止
如果响应==Net::HTTPSuccess
@结果='Running'
其他的
@结果=“未运行”
终止
终止
终止

刚刚遇到了这个老问题。HTTP方法
get
head
不会引发异常。因此,请使用其中一个

def up?(site)
  Net::HTTP.new(site).head('/').kind_of? Net::HTTPOK
end

up? 'www.google.com' #=> true

嗨,谢谢你的信息。我使用了救援块,做了一些调整。现在工作正常了。