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
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