module SayWhen::Poller::BasePoller
Public Class Methods
included(mod)
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 8 def self.included(mod) mod.include(SayWhen::Utils) attr_accessor :reset_next_at end
Public Instance Methods
acquire(time_now)
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 54 def acquire(time_now) logger.debug "SayWhen:: Looking for job that should be ready to fire before #{time_now}" if job = self.storage.acquire_next(time_now) logger.debug "SayWhen:: got a job: #{job.inspect}" else logger.debug "SayWhen:: no jobs to acquire" end job end
error_tick_length()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 87 def error_tick_length @error_tick_length ||= SayWhen.options[:error_tick_length].to_f || tick_length end
job_error(msg, job, ex)
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 30 def job_error(msg, job, ex) job_msg = job && " job:'#{job.inspect}'" logger.error "#{self.class.name} #{msg}#{job_msg}: #{ex.message}\n\t#{ex.backtrace.join("\t\n")}" release(job) end
logger()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 103 def logger SayWhen.logger end
process(job, time_now)
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 64 def process(job, time_now) # delegate processing the trigger to the processor processor.process(job) logger.debug "SayWhen:: job processed: #{job.inspect}" # this should update next fire at, and put back in list of scheduled jobs storage.fired(job, time_now) logger.debug "SayWhen:: job fired: #{job.inspect}" end
process_jobs()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 36 def process_jobs reset_acquired time_now = Time.now while job = acquire(time_now) process(job, time_now) time_now = Time.now end rescue StandardError => ex job_error("Error!", job, ex) tick(error_tick_length) rescue Interrupt => ex job_error("Interrupt!", job, ex) raise ex rescue Exception => ex job_error("Exception!", job, ex) raise ex end
processor()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 95 def processor @processor ||= load_strategy(:processor, SayWhen.options[:processor_strategy]) end
release(job)
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 74 def release(job) logger.info "SayWhen::Scheduler release: #{job.inspect}" job.release if job end
reset_acquired()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 19 def reset_acquired time_now = Time.now self.reset_next_at ||= time_now if reset_acquired_length > 0 && reset_next_at <= time_now self.reset_next_at = time_now + reset_acquired_length logger.debug "SayWhen:: reset acquired at #{time_now}, try again at #{reset_next_at}" storage.reset_acquired(reset_acquired_length) end end
reset_acquired_length()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 91 def reset_acquired_length @reset_acquired_length ||= SayWhen.options[:reset_acquired_length].to_f end
start()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 16 def start end
stop()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 13 def stop end
storage()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 99 def storage @storage ||= load_strategy(:storage, SayWhen.options[:storage_strategy]) end
tick(t = tick_length)
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 79 def tick(t = tick_length) sleep(t.to_f) end
tick_length()
click to toggle source
# File lib/say_when/poller/base_poller.rb, line 83 def tick_length @tick_length ||= SayWhen.options[:tick_length].to_f end