如何使用Ruby监控端点的状态?

时间:2015-06-09 07:25:17

标签: ruby-on-rails ruby server endpoint

我有几个端点,我想用Ruby监控。我想获得他们的状态代码(例如200)。我目前以这种方式这样做

uri = URI.parse("http://example-domain.com")
response = Net::HTTP.get_response(uri)
status = response.code

但是,如果URL无效,则会出现进程错误。我想要一些通知我URL无效的东西(理想情况下返回" 404"到状态变量)

提前致谢

2 个答案:

答案 0 :(得分:0)

uri = URI.parse("http://example-domain.com/wrong")
begin
  response = Net::HTTP.get_response(uri)
rescue Exception
end
status = response ? response.code : '0'

答案 1 :(得分:0)

使用rescue来捕获异常。像这样:

require 'uri'
require 'net/http'

uri = URI.parse("http://bad-example-domain.com")
begin
  response = Net::HTTP.get_response(uri)
rescue Exception => e
  p "Bad url: #{e}"
end
if response
  status = response.code
else
  status = "404"
end
p status

有关您可以在网络中找到的例外的详情,例如:http://www.tutorialspoint.com/ruby/ruby_exceptions.htm