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(options)
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
def load_scheduler_options(options)
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
def start
def start @scheduler_instance.load_schedule! end
def stop
def stop @scheduler_instance.clear_schedule! end