如何定期监控 sketchup ruby 插件中的 url



我尝试定期监控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

但在第一行,我得到错误:

加载错误: C:/程序文件 (x86)/SketchUp/SketchUp 2013/Plugins/xxx.rb:3:in 'require': 没有这样的文件要加载 -- 乒

我想找到ping类库,但什么也找不到。

所以我在哪里可以找到 ping 类或

还有其他方法可以实现该功能吗?

自己运行 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()

最新更新