Class: SolidQueue::Scheduler

Inherits:
Processes::Base show all
Includes:
LifecycleHooks, Processes::Runnable
Defined in:
lib/solid_queue/scheduler.rb

Defined Under Namespace

Classes: RecurringSchedule

Instance Attribute Summary collapse

Attributes inherited from Processes::Base

#name

Instance Method Summary collapse

Methods included from Processes::Runnable

#alive?, #mode=, #start, #stop

Methods included from Processes::Supervised

#supervised_by

Methods inherited from Processes::Base

#hostname, #kind, #pid, #stop

Methods included from AppExecutor

#create_thread, #handle_thread_error, #wrap_in_app_executor

Methods included from Processes::Registrable

#process_id

Methods included from Processes::Procline

#procline

Methods included from Processes::Interruptible

#wake_up

Constructor Details

#initialize(recurring_tasks:, **options) ⇒ Scheduler

Returns a new instance of Scheduler.



16
17
18
19
20
21
22
23
# File 'lib/solid_queue/scheduler.rb', line 16

def initialize(recurring_tasks:, **options)
  options = options.dup.with_defaults(SolidQueue::Configuration::SCHEDULER_DEFAULTS)
  @dynamic_tasks_enabled = options[:dynamic_tasks_enabled]
  @polling_interval = options[:polling_interval]
  @recurring_schedule = RecurringSchedule.new(recurring_tasks, dynamic_tasks_enabled: @dynamic_tasks_enabled)

  super(**options)
end

Instance Attribute Details

#polling_intervalObject (readonly)

Returns the value of attribute polling_interval.



8
9
10
# File 'lib/solid_queue/scheduler.rb', line 8

def polling_interval
  @polling_interval
end

#recurring_scheduleObject (readonly)

Returns the value of attribute recurring_schedule.



8
9
10
# File 'lib/solid_queue/scheduler.rb', line 8

def recurring_schedule
  @recurring_schedule
end

Instance Method Details

#metadataObject



25
26
27
# File 'lib/solid_queue/scheduler.rb', line 25

def 
  super.merge(recurring_schedule: recurring_schedule.task_keys.presence)
end