1 require 'check_exception'
10 @timeout = nil # seconds
11 attr_accessor :timeout
13 @max_age = nil # seconds
14 attr_accessor :max_age
21 def initialize(params = {})
22 self.name = params[:name]
23 self.uri = params[:uri]
24 self.timeout = params[:timeout] || 5
25 self.max_age = params[:max_age] || 75
36 def do_it(force = false)
37 return unless force || stale?
40 Timeout.timeout(timeout) do
44 rescue StandardError, Timeout::Error => err
45 STDERR.puts "In #{type}(#{name}): #{err.class}: #{err.message}\n#{err.backtrace.join("\n")}"
46 @error = "#{err.class}: #{err.message}"
52 @request ||= Time.at(0)
57 @request ||= Time.at(0)
58 @request < Time.now - max_age