Rails 用于检查服务器状态的应用程序
Rails app to check the status of a server
我想解决一个问题,我们手动检查 webapp/server 是否为 up/down。我想构建一个可以自动执行此任务的 rails 应用程序。
考虑我的应用 url 是:HostName:PORT/Route?Params(在 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
我在 ,
遇到错误
response = http.request_get('/<route>?<params>')
当应用向下抛出 'Failed to open TCP connection to URL' 这是正确的。
你们能帮我找到一些新的解决方案吗?或者我该如何改进上面的实现?
由于它按预期工作,您只需要处理应用程序关闭时返回的错误,将其包装在救援块中。
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
刚刚遇到这个老问题。 Net::HTTP 方法 get
和 head
不会引发异常。所以改用其中之一。
def up?(site)
Net::HTTP.new(site).head('/').kind_of? Net::HTTPOK
end
up? 'www.google.com' #=> true
我想解决一个问题,我们手动检查 webapp/server 是否为 up/down。我想构建一个可以自动执行此任务的 rails 应用程序。
考虑我的应用 url 是:HostName:PORT/Route?Params(在 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
我在 ,
遇到错误response = http.request_get('/<route>?<params>')
当应用向下抛出 'Failed to open TCP connection to URL' 这是正确的。
你们能帮我找到一些新的解决方案吗?或者我该如何改进上面的实现?
由于它按预期工作,您只需要处理应用程序关闭时返回的错误,将其包装在救援块中。
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
刚刚遇到这个老问题。 Net::HTTP 方法 get
和 head
不会引发异常。所以改用其中之一。
def up?(site)
Net::HTTP.new(site).head('/').kind_of? Net::HTTPOK
end
up? 'www.google.com' #=> true