class Sidekiq::Cron::Poller

The Poller checks Redis every N seconds for scheduled cron jobs.

Public Class Methods

new(config = nil) click to toggle source
Calls superclass method
# File lib/sidekiq/cron/poller.rb, line 9
def initialize(config = nil)
  super
end

Public Instance Methods

enqueue() click to toggle source
# File lib/sidekiq/cron/poller.rb, line 19
def enqueue
  time = Time.now.utc
  Sidekiq::Cron::Job.all('*').each do |job|
    enqueue_job(job, time)
  end
rescue => ex
  # Most likely a problem with redis networking.
  # Punt and try again at the next interval.
  Sidekiq.logger.error ex.message
  Sidekiq.logger.error ex.backtrace.first
  handle_exception(ex) if respond_to?(:handle_exception)
end
start() click to toggle source
Calls superclass method
# File lib/sidekiq/cron/poller.rb, line 13
def start
  Sidekiq::Cron::Job.migrate_old_jobs_if_needed!

  super
end

Private Instance Methods

enqueue_job(job, time = Time.now.utc) click to toggle source
# File lib/sidekiq/cron/poller.rb, line 34
def enqueue_job(job, time = Time.now.utc)
  job.test_and_enqueue_for_time! time if job && job.valid?
rescue => ex
  # Problem somewhere in one job.
  Sidekiq.logger.error "CRON JOB: #{ex.message}"
  Sidekiq.logger.error "CRON JOB: #{ex.backtrace.first}"
  handle_exception(ex) if respond_to?(:handle_exception)
end
poll_interval_average(process_count = 1) click to toggle source
# File lib/sidekiq/cron/poller.rb, line 43
def poll_interval_average(process_count = 1)
  @config[:cron_poll_interval]
end