class Xtop::UrlChecker
Constants
- INTERVAL
- TIMEOUT
Public Class Methods
check(view, checkers={})
click to toggle source
# File lib/xtop/url_checker.rb, line 10 def self.check(view, checkers={}) checker_threads = {} checkers.each do |url, checker| checker_threads[url] = Thread.new do case checker.call when :ok view.update_status(url, "green") when :error view.update_status(url, "red") else view.update_status(url, "yellow") end end Thread.new do time_elapsed = 0.0 while true sleep(0.1) time_elapsed += INTERVAL if checker_threads[url].status == false # thread has exited break elsif time_elapsed > TIMEOUT view.update_status(url, "yellow") Thread.kill(checker_threads[url]) break end end end end end