Sha256: 7e7eeca4e0249197d752f3b143f5e2dc7ab8a5dcbbbbde4cfe7a13cd0355f767

Contents?: true

Size: 843 Bytes

Versions: 6

Compression:

Stored size: 843 Bytes

Contents

require 'sidekiq'
require 'sidekiq/util'
require 'sidekiq/cron'
require 'sidekiq/scheduled'

module Sidekiq
  module Cron
    # The Poller checks Redis every N seconds for sheduled cron jobs
    class Poller < Sidekiq::Scheduled::Poller
      def enqueue
        Sidekiq::Cron::Job.all.each do |job|
          enqueue_job(job)
        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
      end

      private

      def enqueue_job(job)
        job.test_and_enque_for_time! Time.now if job && job.valid?
      rescue => ex
        # problem somewhere in one job
        logger.error "CRON JOB: #{ex.message}"
        logger.error "CRON JOB: #{ex.backtrace.first}"
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
sidekiq-cron-0.4.5 lib/sidekiq/cron/poller.rb
sidekiq-cron-0.4.4 lib/sidekiq/cron/poller.rb
sidekiq-cron-0.4.3 lib/sidekiq/cron/poller.rb
sidekiq-cron-0.4.2 lib/sidekiq/cron/poller.rb
sidekiq-cron-0.4.1 lib/sidekiq/cron/poller.rb
sidekiq-cron-0.4.0 lib/sidekiq/cron/poller.rb