Skip to content

Instantly share code, notes, and snippets.

@SamSaffron
Last active December 20, 2016 11:08
Show Gist options
  • Save SamSaffron/8e069b0510eb640fe7c8 to your computer and use it in GitHub Desktop.
Save SamSaffron/8e069b0510eb640fe7c8 to your computer and use it in GitHub Desktop.
require 'net/http'
require 'openssl'
def test_connection(ip_address, uri, delays)
Net::HTTP.start(ip_address, uri.port,
use_ssl: true,
verify_mode: OpenSSL::SSL::VERIFY_NONE,
keep_alive_timeout: 50
) do |http|
while true
$delays.each do |delay|
sleep delay
start = Time.now
request = Net::HTTP::Get.new uri
response = http.request request
duration = ((Time.now - start)*1000).to_i
puts "#{Time.now}: #{ip_address} took #{duration} MS (delay: #{delay}) #{response["x-proxy"]}" if duration > 1000
if response.body != "ok"
STDERR.puts "FAILED"
end
end
end
end
end
$delays = [0,5,10,20,30,40]
$uri = URI('https://meta.discourse.org/srv/status')
puts "Started at: #{Time.now}"
["64.71.148.5", "64.71.168.201"].each do |ip|
Thread.new do
while true
begin
test_connection(ip, $uri, $delays)
rescue => e
p e
sleep 5
end
end
end
end
gets
puts "Finished at: #{Time.now}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment