Class: SolidQueue::Dispatcher

Inherits:
Processes::Poller show all
Includes:
LifecycleHooks
Defined in:
lib/solid_queue/dispatcher.rb

Defined Under Namespace

Classes: ConcurrencyMaintenance, Maintenance

Instance Attribute Summary collapse

Attributes inherited from Processes::Poller

#polling_interval

Attributes inherited from Processes::Base

#name

Instance Method Summary collapse

Methods included from Processes::Runnable

#alive?, #boot_timed_out?, #mark_as_reaped, #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(**options) ⇒ Dispatcher

Returns a new instance of Dispatcher.



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/solid_queue/dispatcher.rb', line 15

def initialize(**options)
  options = options.dup.with_defaults(SolidQueue::Configuration::DISPATCHER_DEFAULTS)

  @batch_size = options[:batch_size]

  # Run both maintenance routines on one timer instead of another thread.
  if options[:concurrency_maintenance] || options[:batch_maintenance]
    @maintenance = Maintenance.new(options[:concurrency_maintenance_interval], options[:batch_size],
      concurrency: options[:concurrency_maintenance], batches: options[:batch_maintenance])
  end

  super(**options)
end

Instance Attribute Details

#batch_sizeObject (readonly)

Returns the value of attribute batch_size.



7
8
9
# File 'lib/solid_queue/dispatcher.rb', line 7

def batch_size
  @batch_size
end

Instance Method Details

#metadataObject



29
30
31
# File 'lib/solid_queue/dispatcher.rb', line 29

def 
  super.merge(batch_size: batch_size).merge(maintenance&. || {})
end