“我的网站瘫痪了吗?”方法

发布于 2024-09-30 20:59:13 字数 73 浏览 2 评论 0原文

创建“我的网站已关闭吗?”的最佳方法是什么?在鲁比?我应该如何使用 HTTP(s) 和 Ping 来检查它?

谢谢。

What's the best way to create a "Is my site down?" in Ruby? How should I do it to check it using HTTP(s) and Ping?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁月苍老的讽刺 2024-10-07 20:59:13

基本上只是使用 http 库来查看是否可以获得(实际上,HEADing 会更好)他们指向的页面。如果您收到响应,则服务器已启动,否则(不响应或超时)服务器已关闭,您会相应地提醒用户。

这不是最干净的方法,但基本上:

require 'net/http'
require 'uri'

def isUp( url )
    uri = URI.parse( url )

    begin
        Timeout::timeout(5) {
            Net::HTTP.start( uri.host, uri.port ) { |http|
                 http.head( uri.path )
            }
        }
    rescue Timeout::Error
        return false
    end

    return true 
end

您可能可以让它不等待超时,和/或增加超时以避免超时以避免误报,但这是一个简单的示例。

Basically just use a http library to see if you can get (actually, HEADing would be better) the page they're pointing to. If you get a response then the server is up, otherwise (it doesn't respond or times out) it is down and you alert the user accordingly.

This isn't the cleanest way of doing it, but basically:

require 'net/http'
require 'uri'

def isUp( url )
    uri = URI.parse( url )

    begin
        Timeout::timeout(5) {
            Net::HTTP.start( uri.host, uri.port ) { |http|
                 http.head( uri.path )
            }
        }
    rescue Timeout::Error
        return false
    end

    return true 
end

You can probably get it to not wait for the timeout, and/or increase the timeout to avoid the timeout to avoid false positive, but this is a simple example.

无尽的现实 2024-10-07 20:59:13

(欺骗)

require 'uri'
require 'open-uri'
site = "http://stackoverflow.com/"
open("http://downforeveryoneorjustme.com/#{URI.parse(site).host}"){|f|f.read}["It's not just you!"]

(cheat)

require 'uri'
require 'open-uri'
site = "http://stackoverflow.com/"
open("http://downforeveryoneorjustme.com/#{URI.parse(site).host}"){|f|f.read}["It's not just you!"]
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文