Harsha M V
Harsha M V

Reputation: 54949

Ruby Script to ping a URL every 30sec

Is there a way to ping a URL every 30 seconds using Ruby script?

require 'net/http'

http = Net::HTTP.new('www.google.com',80)
response = http.request_get('/')
p response.status

Upvotes: 1

Views: 1162

Answers (2)

spickermann
spickermann

Reputation: 106882

Depending on your use case a simple loop with a sleep might to the job:

require 'net/http'

loop do
  http = Net::HTTP.new('www.google.com')
  response = http.request_get('/')
  p response.code

  sleep 30      
end

Upvotes: 5

Eric Duminil
Eric Duminil

Reputation: 54223

This code pings every 30 sec, as long as the ping duration is less than 30 sec.

require 'net/http'

time_step = 30 #s

loop do
  start = Time.now
    http = Net::HTTP.new('www.google.com',80)
    response = http.request_get('/')
    p response.code # -> "302"
  duration = Time.now-start

  sleep (time_step - duration) unless duration > time_step
end

Upvotes: 3

Related Questions