每30秒ping一个URL的Ruby脚本
有没有办法使用Ruby脚本每隔30秒ping一次URL每30秒ping一个URL的Ruby脚本,ruby,Ruby,有没有办法使用Ruby脚本每隔30秒ping一次URL require 'net/http' http = Net::HTTP.new('www.google.com',80) response = http.request_get('/') p response.status 根据您的使用情况,一个简单的循环和睡眠可能会影响作业: require 'net/http' loop do http = Net::HTTP.new('www.google.com') response
require 'net/http'
http = Net::HTTP.new('www.google.com',80)
response = http.request_get('/')
p response.status
根据您的使用情况,一个简单的
循环
和睡眠
可能会影响作业:
require 'net/http'
loop do
http = Net::HTTP.new('www.google.com')
response = http.request_get('/')
p response.code
sleep 30
end
根据您的使用情况,一个简单的
循环
和睡眠
可能会影响作业:
require 'net/http'
loop do
http = Net::HTTP.new('www.google.com')
response = http.request_get('/')
p response.code
sleep 30
end
只要ping持续时间小于30秒,此代码每30秒ping一次
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
只要ping持续时间小于30秒,此代码每30秒ping一次
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
如果你准备好使用
cron
@tadman,那么while true
和sleep(30)
每一分钟都很简单,当然这不是问题。那么,在你的电脑中,这就像***~/cron/myscript
一样简单。这样做的好处是,即使在重新启动后,它也会一直运行,无需干预。它可以在macOS上工作,是的,因为它有一个BSD内核。(注意,这不是“MAC”。如果你准备好使用cron
@tadman,那么while true
和sleep(30)
每一分钟都很简单,当然这不是问题。然后,在你的电脑中,它就像***~/cron/myscript
一样简单。这样做的好处是,即使在重新启动后,它也会一直运行,无需干预。它可以在macOS上工作,是的,因为它有一个BSD内核。(注意,这不是“MAC”。但如果提供url的服务器在1分钟后会响应呢?我们可以这样做:Net::HTTP.new('www.google.com',80,:read_timeout=>10)
?@spickermann SocketError:无法打开到www.google.com:80的TCP连接(getaddrinfo:nodename或servname提供,或未知)@num8er:正如我所说的,这取决于用例。无论发生什么情况,每30秒ping一次是否重要?还是在最后一次ping成功后30秒ping?@HarshaMV:我更新了我的答案以回应你的评论。在我的机器上工作正常。但如果提供url的服务器在1分钟后会响应呢?我们可以这样做:Net::HTTP.new('www.google.com',80,:read\u timeout=>10)
?@spickermann SocketError:无法打开到www.google.com的TCP连接:80(getaddrinfo:nodename或servname提供,或未知)@num8er:正如我所说的,这取决于用例。无论发生什么情况,每30秒ping一次是否重要?还是在最后一次ping成功后30秒ping?@HarshaMV:我更新了我的答案以回应你的评论。在我的机器上很好用。