Sha256: 85ea8dd5ddda9663cf88d824476d79e0212e089db19eb76b0b8aae98a99a61b4
Contents?: true
Size: 1.22 KB
Versions: 61
Compression:
Stored size: 1.22 KB
Contents
module Spider # TODO: remove class PeriodicRunner #:nodoc: attr_reader :runner_thread def initialize(sleep_time=nil) @entries = [] @sleep_time = sleep_time @mutex = Mutex.new if (sleep_time) @runner_thread = Thread.new{ while (true) sleep(sleep_time) run end } end end def add(secs, &proc) proc.call @mutex.synchronize { @entries << { :secs => secs, :proc => proc, :last => Time.now.to_i } } end def run Spider::Logger.debug("Periodic_runner") @mutex.synchronize { Spider::Logger.debug("In synchro") @entries.each do |entry| if (!entry[:last] || (entry[:last] + secs) < Time.now.to_i ) proc.call entry[:last] = Time.now.to_i end end } end end end
Version data entries
61 entries across 61 versions & 1 rubygems