Sha256: 7f0e06a7ed89e70625d873e2d17f5cfe0e6221dd0fedc9968a44237541662f7a
Contents?: true
Size: 1.59 KB
Versions: 2
Compression:
Stored size: 1.59 KB
Contents
require 'sidekiq' 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 initialize Sidekiq.configure_server do |config| if config.respond_to?(:[]) config[:poll_interval_average] = config[:average_scheduled_poll_interval] || POLL_INTERVAL else config.options[:poll_interval_average] = config.options[:average_scheduled_poll_interval] || POLL_INTERVAL end end if Gem::Version.new(Sidekiq::VERSION) >= Gem::Version.new("6.5.0") # Sidekiq Poller init requires a config argument super(Sidekiq) else super end end 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 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 Sidekiq.logger.error "CRON JOB: #{ex.message}" Sidekiq.logger.error "CRON JOB: #{ex.backtrace.first}" handle_exception(ex) if respond_to?(:handle_exception) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
sidekiq-cron-1.6.0 | lib/sidekiq/cron/poller.rb |
sidekiq-cron-1.5.1 | lib/sidekiq/cron/poller.rb |