class SidekiqScheduler::Manager

The delayed job router in the system. This manages the scheduled jobs pushed messages from Redis onto the work queues

Constants

DEFAULT_SCHEDULER_OPTIONS

Public Class Methods

new(options) click to toggle source
# File lib/sidekiq-scheduler/manager.rb, line 24
def initialize(options)
  scheduler_options = load_scheduler_options(options)

  @scheduler_instance = SidekiqScheduler::Scheduler.new(scheduler_options)
  SidekiqScheduler::Scheduler.instance = @scheduler_instance
  Sidekiq.schedule = scheduler_options[:schedule] if @scheduler_instance.enabled
end

Public Instance Methods

reset() click to toggle source
# File lib/sidekiq-scheduler/manager.rb, line 40
def reset
  clear_scheduled_work
end
start() click to toggle source
# File lib/sidekiq-scheduler/manager.rb, line 36
def start
  @scheduler_instance.load_schedule!
end
stop() click to toggle source
# File lib/sidekiq-scheduler/manager.rb, line 32
def stop
  @scheduler_instance.clear_schedule!
end

Private Instance Methods

load_scheduler_options(options) click to toggle source
# File lib/sidekiq-scheduler/manager.rb, line 46
def load_scheduler_options(options)
  options[:listened_queues_only] = options.fetch(:scheduler, {})[:listened_queues_only]
  scheduler_options = DEFAULT_SCHEDULER_OPTIONS.merge(options)

  current_options = {
    enabled: SidekiqScheduler::Scheduler.enabled,
    dynamic: SidekiqScheduler::Scheduler.dynamic,
    dynamic_every: SidekiqScheduler::Scheduler.dynamic_every,
    schedule: Sidekiq.schedule,
    listened_queues_only: SidekiqScheduler::Scheduler.listened_queues_only
  }.delete_if { |_, value| value.nil? }

  scheduler_options.merge(current_options)
end