我想实现一个问题,我们手动去检查一个webapp / server,如果它是up / down。我想构建一个可以自动执行此任务的rails应用程序。
考虑我的应用网址是:主机名:PORT /路由?参数(可能有也可能没有网址中的端口)
我检查了网络/ 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>')
当应用程序出现故障时,无法打开与URL的TCP连接&#39;这是正确的。
你们能帮我找一些新的解决方案,或者我如何改进上述实施?
答案 0 :(得分:1)
由于它按预期工作,你只需要处理应用程序关闭时返回的错误,将其包装在一个救援块中。
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 :(得分:0)
只是碰到了这个老问题。 Net :: HTTP方法Shell("c:\curl.exe https://xxxxxxx.service-now.com/sys_report_template.do?CSV&jvar_report_id=676dbfdadb2637489ec9de1a489xxxxx -o output-name-xxxx.csv")
和get
不会引发异常。因此,请使用其中之一。
head