Каков наилучший способ создания «Мой сайт?» в Рубине? Как мне это сделать, чтобы проверить это с помощью HTTP (s) и Ping?«Мой сайт отключен?» Howto
Спасибо.
Каков наилучший способ создания «Мой сайт?» в Рубине? Как мне это сделать, чтобы проверить это с помощью HTTP (s) и Ping?«Мой сайт отключен?» Howto
Спасибо.
В основном просто используйте 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
Вы, вероятно, может получить его, чтобы не ждать таймаута и/или увеличить время ожидания, чтобы избежать тайм-аут, чтобы избежать ложного положительный, но это простой пример.
(читы)
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!"]
мог бы просто использовать существующие услуги, что если открытый веб-сценарий применяется: http://downforeveryoneorjustme.com/stackoverflow.com – BrokenGlass
@BrokenGlass, та же идея) – Nakilon
@BrokenGlass: Сайт, похоже, не возвращает достоверных результатов. Он вернулся: «Это не только вы! Http://google.com смотрит вниз». в то время как я просил статус google.com – haltTm