class SidekiqScheduler::Manager


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

def initialize(config)

def initialize(config)
  set_current_scheduler_options(config)
  @scheduler_instance = SidekiqScheduler::Scheduler.new(config)
  SidekiqScheduler::Scheduler.instance = @scheduler_instance
  Sidekiq.schedule = config.schedule if @scheduler_instance.enabled && !@scheduler_instance.dynamic
end

def set_current_scheduler_options(config)

def set_current_scheduler_options(config)
  enabled = SidekiqScheduler::Scheduler.enabled
  dynamic = SidekiqScheduler::Scheduler.dynamic
  dynamic_every = SidekiqScheduler::Scheduler.dynamic_every
  listened_queues_only = SidekiqScheduler::Scheduler.listened_queues_only
  config.enabled = enabled unless enabled.nil?
  config.dynamic = dynamic unless dynamic.nil?
  config.dynamic_every = dynamic_every unless dynamic_every.nil?
  unless Sidekiq.schedule.nil? || (Sidekiq.schedule.respond_to?(:empty?) && Sidekiq.schedule.empty?)
    config.schedule = Sidekiq.schedule
  end
  config.listened_queues_only = listened_queues_only unless listened_queues_only.nil?
end

def start

def start
  @scheduler_instance.load_schedule!
end

def stop

def stop
  @scheduler_instance.clear_schedule!
end

def to_hash

unless it responds to `to_hash`.
Because ActiveSupport's `as_json` traverses instance values to convert the object to a hash
This method is needed to avoid exposing unnecessary information.
def to_hash
  {
    scheduler: @scheduler_instance.to_hash
  }
end