Class: SolidQueue::Supervisor
Defined Under Namespace
Modules: Maintenance, Pidfiled, Signals
Classes: Pidfile
Instance Attribute Summary
#name
Class Method Summary
collapse
Instance Method Summary
collapse
#hostname, #metadata, #pid
#create_thread, #handle_thread_error, #wrap_in_app_executor
#process_id
#procline
#wake_up
Constructor Details
#initialize(configuration) ⇒ Supervisor
Returns a new instance of Supervisor.
28
29
30
31
32
33
34
35
|
# File 'lib/solid_queue/supervisor.rb', line 28
def initialize(configuration)
@configuration = configuration
@configured_processes = {}
@process_instances = {}
super
end
|
Class Method Details
.start(**options) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/solid_queue/supervisor.rb', line 11
def start(**options)
SolidQueue.supervisor = true
configuration = Configuration.new(**options)
if configuration.valid?
configuration.warnings.full_messages.each { |warning| SolidQueue.logger.warn(warning) }
klass = configuration.mode.fork? ? ForkSupervisor : AsyncSupervisor
klass.new(configuration).tap(&:start)
else
abort configuration.errors.full_messages.join("\n") + "\nExiting..."
end
end
|
Instance Method Details
#kind ⇒ Object
52
53
54
|
# File 'lib/solid_queue/supervisor.rb', line 52
def kind
"Supervisor(#{mode})"
end
|
#start ⇒ Object
37
38
39
40
41
42
43
44
45
|
# File 'lib/solid_queue/supervisor.rb', line 37
def start
boot
run_start_hooks
start_processes
launch_maintenance_task
supervise
end
|
#stop ⇒ Object
47
48
49
50
|
# File 'lib/solid_queue/supervisor.rb', line 47
def stop
super
run_stop_hooks
end
|