代码之家  ›  专栏  ›  技术社区  ›  tim_xyz

如何Ping从Ruby本地运行的另一个应用程序

  •  1
  • tim_xyz  · 技术社区  · 6 年前

    我想检查一下flask应用程序是否从本地运行的Rails应用程序运行。

    flask应用程序是用,

    gunicorn --bind 0.0.0.0:5000 wsgi:application -w 1
    

    因此,

    Listening at: http://0.0.0.0:5000
    

    我怎么能用ping来查看它是否在那里运行?

    我在下面尝试使用net/ping gem,但没有成功。

    check = Net::Ping::External.new('http://0.0.0.0:5000')
    check.ping?
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   Casper    6 年前

    你想做的就是利用 Net::Ping::HTTP 相反。这个 External 类用于ICMP主机ping(仅检查主机是否启动,而不是该主机上的服务)。

    使用HTTP协议检查HTTP服务器是否已启动:

    check = Net::Ping::HTTP.new('http://localhost:5000')
    check.ping?
    

    如果要将超时调整为2秒(默认值为5):

    check = Net::Ping::HTTP.new('http://localhost:5000', nil, 2)
    check.ping?