@@ -11,12 +11,12 @@ def start(mode: :work, load_configuration_from: nil)
11
11
SolidQueue . supervisor = true
12
12
configuration = Configuration . new ( mode : mode , load_from : load_configuration_from )
13
13
14
- new ( *configuration . runners ) . start
14
+ new ( *configuration . processes ) . start
15
15
end
16
16
end
17
17
18
- def initialize ( *runners )
19
- @runners = Array ( runners )
18
+ def initialize ( *configured_processes )
19
+ @configured_processes = Array ( configured_processes )
20
20
@forks = { }
21
21
end
22
22
@@ -33,7 +33,7 @@ def start
33
33
end
34
34
35
35
private
36
- attr_reader :runners , :forks
36
+ attr_reader :configured_processes , :forks
37
37
38
38
def boot
39
39
sync_std_streams
@@ -42,13 +42,13 @@ def boot
42
42
end
43
43
44
44
def supervise
45
- start_runners
45
+ start_forks
46
46
47
47
loop do
48
48
procline "supervising #{ forks . keys . join ( ", " ) } "
49
49
50
50
process_signal_queue
51
- reap_and_replace_terminated_runners
51
+ reap_and_replace_terminated_forks
52
52
interruptible_sleep ( 1 . second )
53
53
end
54
54
end
@@ -68,8 +68,8 @@ def launch_process_prune
68
68
@prune_task . execute
69
69
end
70
70
71
- def start_runners
72
- runners . each { |runner | start_runner ( runner ) }
71
+ def start_forks
72
+ configured_processes . each { |configured_process | start_fork ( configured_process ) }
73
73
end
74
74
75
75
def shutdown
@@ -80,25 +80,25 @@ def shutdown
80
80
81
81
def graceful_termination
82
82
procline "terminating gracefully"
83
- term_runners
83
+ term_forks
84
84
85
- wait_until ( SolidQueue . shutdown_timeout , -> { all_runners_terminated ? } ) do
86
- reap_terminated_runners
85
+ wait_until ( SolidQueue . shutdown_timeout , -> { all_forks_terminated ? } ) do
86
+ reap_terminated_forks
87
87
end
88
88
89
- immediate_termination unless all_runners_terminated ?
89
+ immediate_termination unless all_forks_terminated ?
90
90
end
91
91
92
92
def immediate_termination
93
93
procline "terminating immediately"
94
- quit_runners
94
+ quit_forks
95
95
end
96
96
97
- def term_runners
97
+ def term_forks
98
98
signal_processes ( forks . keys , :TERM )
99
99
end
100
100
101
- def quit_runners
101
+ def quit_forks
102
102
signal_processes ( forks . keys , :QUIT )
103
103
end
104
104
@@ -116,26 +116,26 @@ def prune_dead_processes
116
116
end
117
117
end
118
118
119
- def start_runner ( runner )
120
- runner . supervised_by process
119
+ def start_fork ( configured_process )
120
+ configured_process . supervised_by process
121
121
122
122
pid = fork do
123
- runner . start
123
+ configured_process . start
124
124
end
125
125
126
- forks [ pid ] = runner
126
+ forks [ pid ] = configured_process
127
127
end
128
128
129
- def reap_and_replace_terminated_runners
129
+ def reap_and_replace_terminated_forks
130
130
loop do
131
131
pid , status = ::Process . waitpid2 ( -1 , ::Process ::WNOHANG )
132
132
break unless pid
133
133
134
- replace_runner ( pid , status )
134
+ replace_fork ( pid , status )
135
135
end
136
136
end
137
137
138
- def reap_terminated_runners
138
+ def reap_terminated_forks
139
139
loop do
140
140
pid , status = ::Process . waitpid2 ( -1 , ::Process ::WNOHANG )
141
141
break unless pid
@@ -146,16 +146,16 @@ def reap_terminated_runners
146
146
# All children already reaped
147
147
end
148
148
149
- def replace_runner ( pid , status )
150
- if runner = forks . delete ( pid )
151
- SolidQueue . logger . info "[SolidQueue] Restarting worker [#{ status . pid } ] (status: #{ status . exitstatus } )"
152
- start_runner ( runner )
149
+ def replace_fork ( pid , status )
150
+ if supervised_fork = forks . delete ( pid )
151
+ SolidQueue . logger . info "[SolidQueue] Restarting fork [#{ status . pid } ] (status: #{ status . exitstatus } )"
152
+ start_fork ( supervised_fork )
153
153
else
154
- SolidQueue . logger . info "[SolidQueue] Tried to replace worker [#{ pid } ] (status: #{ status . exitstatus } , runner [#{ status . pid } ]), but it had already died (status: #{ status . exitstatus } )"
154
+ SolidQueue . logger . info "[SolidQueue] Tried to replace fork [#{ pid } ] (status: #{ status . exitstatus } , fork [#{ status . pid } ]), but it had already died (status: #{ status . exitstatus } )"
155
155
end
156
156
end
157
157
158
- def all_runners_terminated ?
158
+ def all_forks_terminated ?
159
159
forks . empty?
160
160
end
161
161
0 commit comments