我尝试定期监控sketchup ruby插件中的url ..
我搜索一些代码来执行此功能:
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
但在第一行,我收到错误:
LoadError:C:/ Program Files(x86)/ SketchUp / SketchUp 2013 / Plugins / xxx.rb:3:在`require'中:没有要加载的文件 - 平
我想找到ping
类库但我找不到任何东西..
所以我可以找到ping类或
有没有其他方法可以实现这个功能?
答案 0 :(得分:1)
自己运行 ping 有什么问题?
`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()