Sha256: 4fdf5671afbbcba69d2a2514b9f2fdd08714d98373dfed1dc6743a3c70622394
Contents?: true
Size: 1.12 KB
Versions: 6
Compression:
Stored size: 1.12 KB
Contents
require 'sidekiq' require 'sidekiq/util' require 'sidekiq/cron' require 'sidekiq/scheduled' module Sidekiq module Cron POLL_INTERVAL = 30 # The Poller checks Redis every N seconds for sheduled cron jobs class Poller < Sidekiq::Scheduled::Poller 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 logger.error ex.message logger.error ex.backtrace.first handle_exception(ex) if respond_to?(:handle_exception) end private def enqueue_job(job, time = Time.now.utc) job.test_and_enque_for_time! time if job && job.valid? rescue => ex # problem somewhere in one job logger.error "CRON JOB: #{ex.message}" logger.error "CRON JOB: #{ex.backtrace.first}" handle_exception(ex) if respond_to?(:handle_exception) end def poll_interval_average Sidekiq.options[:poll_interval] || POLL_INTERVAL end end end end
Version data entries
6 entries across 6 versions & 1 rubygems