Как регулярно отслеживать URL в SketchUp Ruby плагин?
Я пытаюсь регулярно отслеживать URL в SketchUp Ruby плагин..
Я ищу какой-то код, чтобы сделать эту функцию:
require 'ping'
def every_n_seconds(n)
loop do
before= Time.now
yield
interval=n-(Time.now-before)
sleep(interval) if interval>0
end
end
every_n_seconds(50) do
pingresult=Ping.pingecho("www.google.com")
puts pingresult
if pingresult="true"
puts "t"
else
puts "f!"
end
end
но в первой строке я получаю ошибку:
Ошибка загрузки: C:/Program Files (x86)/SketchUp/SketchUp 2013/Plugins/xxx.rb:3: в `require': такой файл не загружается - ping
Я хочу найти ping
библиотека классов, но я ничего не нахожу..
так где я могу найти класс пинг или
Есть ли другой метод для достижения этой функции?
1 ответ
Что плохого в том, чтобы просто запустить пинг?
`ping -c 1 www.google.com`
if $?.exitstatus == 0
puts "t"
else
puts "f"
end
Или даже лучше:
def ping(url)
`ping -c 4 #{url}`
$?.exitstatus == 0
end
if ping("www.google.com")
puts "t"
else
puts "f"
end
Запуск в отдельном потоке:
def ping(url)
`ping -c 4 #{url}`
$?.exitstatus == 0
end
def every_n_seconds(n)
loop do
before= Time.now
yield
interval=n-(Time.now-before)
sleep(interval) if interval>0
end
end
ping_thread = Thread.new {
every_n_seconds(50) do
pingresult=ping("google.com")
puts pingresult
if pingresult
puts "t"
else
puts "f!"
end
end
}
puts "Doing other things now..."
ping_thread.join()