resqued 0.8.2 → 0.8.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +4 -0
- data/docs/signals.md +2 -2
- data/exe/resqued +4 -0
- data/lib/resqued/listener.rb +8 -4
- data/lib/resqued/master.rb +2 -1
- data/lib/resqued/version.rb +1 -1
- data/spec/resqued/sleepy_spec.rb +4 -0
- metadata +28 -27
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06883e41037ccd453274da0f9e3727fcbcb6801c
|
4
|
+
data.tar.gz: 2f63d5e0ee2b1c2189edfdf5985438608e061d6d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: caf06d5cba99ab3bf12c0f699efd72ac896e75bbf14a4e4a6a58c6068d0666f03aad0e12c8aa4b1c837309d419d6144e3b77d2ba4c648719327d03bf42b8253c
|
7
|
+
data.tar.gz: 4790df77dc5cd23349e3576693345b26251c7432d83d307370e1ecfcaa1a811cd570ee30843e801e85c5addf4656a906c4a44b381f7aeb848e56b3030aace183
|
data/CHANGES.md
CHANGED
data/docs/signals.md
CHANGED
@@ -24,8 +24,8 @@ The Master process handles several signals.
|
|
24
24
|
|
25
25
|
* `HUP`: Start a new listener. After it boots, kill the previous listener with `SIGQUIT`.
|
26
26
|
* `USR2`: Pause processing. Kills the current listener, and does not start a replacement.
|
27
|
-
* `CONT`: Resume processing. If there is no listener, start one. If there is a listener, send it SIGCONT
|
28
|
-
* `QUIT`, `INT`, or `TERM`: Kill the listener with the same signal and wait for it to exit.
|
27
|
+
* `CONT`: Resume processing. If there is no listener, start one. If there is a listener, send it `SIGCONT`.
|
28
|
+
* `QUIT`, `INT`, or `TERM`: Kill the listener with the same signal and wait for it to exit. If `--fast-exit` was specified, the master exits immediately without waiting for the listener to exit.
|
29
29
|
* `CHLD`: Clean up any listeners that have exited. If the current listener exited
|
30
30
|
|
31
31
|
## Listener
|
data/exe/resqued
CHANGED
@@ -30,6 +30,10 @@ opts = OptionParser.new do |opts|
|
|
30
30
|
test = true
|
31
31
|
end
|
32
32
|
|
33
|
+
opts.on '--fast-exit', 'Exit quickly on SIGQUIT, SIGTERM' do
|
34
|
+
options[:fast_exit] = true
|
35
|
+
end
|
36
|
+
|
33
37
|
opts.on '-p', '--pidfile PIDFILE', 'Store the pid of the master process in PIDFILE' do |v|
|
34
38
|
options[:master_pidfile] = v
|
35
39
|
end
|
data/lib/resqued/listener.rb
CHANGED
@@ -186,13 +186,15 @@ module Resqued
|
|
186
186
|
|
187
187
|
# Private: Check if master reports any dead workers.
|
188
188
|
def check_for_expired_workers
|
189
|
+
return unless @socket
|
189
190
|
loop do
|
190
191
|
IO.select([@socket], nil, nil, 0) or return
|
191
192
|
line = @socket.readline
|
192
193
|
finish_worker(line.to_i, nil)
|
193
194
|
end
|
194
|
-
rescue EOFError, Errno::ECONNRESET
|
195
|
-
|
195
|
+
rescue EOFError, Errno::ECONNRESET => e
|
196
|
+
@socket = nil
|
197
|
+
log "#{e.class.name} while reading from master"
|
196
198
|
Process.kill(:QUIT, $$)
|
197
199
|
end
|
198
200
|
|
@@ -234,8 +236,10 @@ module Resqued
|
|
234
236
|
# report_to_master("+12345,queue") # Worker process PID:12345 started, working on a job from "queue".
|
235
237
|
# report_to_master("-12345") # Worker process PID:12345 exited.
|
236
238
|
def report_to_master(status)
|
237
|
-
@socket.puts(status)
|
238
|
-
rescue Errno::EPIPE
|
239
|
+
@socket.puts(status) if @socket
|
240
|
+
rescue Errno::EPIPE => e
|
241
|
+
@socket = nil
|
242
|
+
log "#{e.class.name} while writing to master"
|
239
243
|
Process.kill(:QUIT, $$) # If the master is gone, LIFE IS NOW MEANINGLESS.
|
240
244
|
end
|
241
245
|
|
data/lib/resqued/master.rb
CHANGED
@@ -20,6 +20,7 @@ module Resqued
|
|
20
20
|
@config_paths = options.fetch(:config_paths)
|
21
21
|
@pidfile = options.fetch(:master_pidfile) { nil }
|
22
22
|
@status_pipe = options.fetch(:status_pipe) { nil }
|
23
|
+
@fast_exit = options.fetch(:fast_exit) { false }
|
23
24
|
@listener_backoff = Backoff.new
|
24
25
|
@listeners_created = 0
|
25
26
|
end
|
@@ -66,7 +67,7 @@ module Resqued
|
|
66
67
|
when :INT, :TERM, :QUIT
|
67
68
|
log "Shutting down..."
|
68
69
|
kill_all_listeners(signal)
|
69
|
-
wait_for_workers
|
70
|
+
wait_for_workers unless @fast_exit
|
70
71
|
break
|
71
72
|
end
|
72
73
|
end
|
data/lib/resqued/version.rb
CHANGED
data/spec/resqued/sleepy_spec.rb
CHANGED
metadata
CHANGED
@@ -1,89 +1,89 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: resqued
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Burke
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-10-
|
11
|
+
date: 2016-10-03 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kgio
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.6'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '2.6'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: resque
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 1.9.1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 1.9.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: mono_logger
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '1.0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '1.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - ~>
|
59
|
+
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '2.0'
|
62
|
-
- - <
|
62
|
+
- - "<"
|
63
63
|
- !ruby/object:Gem::Version
|
64
64
|
version: '2.99'
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
|
-
- - ~>
|
69
|
+
- - "~>"
|
70
70
|
- !ruby/object:Gem::Version
|
71
71
|
version: '2.0'
|
72
|
-
- - <
|
72
|
+
- - "<"
|
73
73
|
- !ruby/object:Gem::Version
|
74
74
|
version: '2.99'
|
75
75
|
- !ruby/object:Gem::Dependency
|
76
76
|
name: rake
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
78
78
|
requirements:
|
79
|
-
- - ~>
|
79
|
+
- - "~>"
|
80
80
|
- !ruby/object:Gem::Version
|
81
81
|
version: 0.9.0
|
82
82
|
type: :development
|
83
83
|
prerelease: false
|
84
84
|
version_requirements: !ruby/object:Gem::Requirement
|
85
85
|
requirements:
|
86
|
-
- - ~>
|
86
|
+
- - "~>"
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: 0.9.0
|
89
89
|
description: Daemon of resque workers
|
@@ -94,13 +94,22 @@ executables:
|
|
94
94
|
extensions: []
|
95
95
|
extra_rdoc_files: []
|
96
96
|
files:
|
97
|
+
- CHANGES.md
|
98
|
+
- MIT-LICENSE
|
99
|
+
- README.md
|
100
|
+
- docs/ipc.md
|
101
|
+
- docs/processes.md
|
102
|
+
- docs/signals.md
|
103
|
+
- exe/resqued
|
104
|
+
- exe/resqued-listener
|
105
|
+
- lib/resqued.rb
|
97
106
|
- lib/resqued/backoff.rb
|
107
|
+
- lib/resqued/config.rb
|
98
108
|
- lib/resqued/config/after_fork.rb
|
99
109
|
- lib/resqued/config/base.rb
|
100
110
|
- lib/resqued/config/before_fork.rb
|
101
111
|
- lib/resqued/config/dsl.rb
|
102
112
|
- lib/resqued/config/worker.rb
|
103
|
-
- lib/resqued/config.rb
|
104
113
|
- lib/resqued/daemon.rb
|
105
114
|
- lib/resqued/listener.rb
|
106
115
|
- lib/resqued/listener_proxy.rb
|
@@ -113,13 +122,6 @@ files:
|
|
113
122
|
- lib/resqued/test_case.rb
|
114
123
|
- lib/resqued/version.rb
|
115
124
|
- lib/resqued/worker.rb
|
116
|
-
- lib/resqued.rb
|
117
|
-
- README.md
|
118
|
-
- CHANGES.md
|
119
|
-
- MIT-LICENSE
|
120
|
-
- docs/ipc.md
|
121
|
-
- docs/processes.md
|
122
|
-
- docs/signals.md
|
123
125
|
- spec/fixtures/test_case_after_fork_raises.rb
|
124
126
|
- spec/fixtures/test_case_before_fork_raises.rb
|
125
127
|
- spec/fixtures/test_case_clean.rb
|
@@ -134,8 +136,6 @@ files:
|
|
134
136
|
- spec/resqued/test_case_spec.rb
|
135
137
|
- spec/spec_helper.rb
|
136
138
|
- spec/support/custom_matchers.rb
|
137
|
-
- exe/resqued
|
138
|
-
- exe/resqued-listener
|
139
139
|
homepage: https://github.com/spraints/resqued
|
140
140
|
licenses:
|
141
141
|
- MIT
|
@@ -146,17 +146,17 @@ require_paths:
|
|
146
146
|
- lib
|
147
147
|
required_ruby_version: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
- -
|
149
|
+
- - ">="
|
150
150
|
- !ruby/object:Gem::Version
|
151
151
|
version: '0'
|
152
152
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
153
153
|
requirements:
|
154
|
-
- -
|
154
|
+
- - ">="
|
155
155
|
- !ruby/object:Gem::Version
|
156
156
|
version: '0'
|
157
157
|
requirements: []
|
158
158
|
rubyforge_project:
|
159
|
-
rubygems_version: 2.
|
159
|
+
rubygems_version: 2.5.1
|
160
160
|
signing_key:
|
161
161
|
specification_version: 4
|
162
162
|
summary: Daemon of resque workers
|
@@ -175,3 +175,4 @@ test_files:
|
|
175
175
|
- spec/resqued/test_case_spec.rb
|
176
176
|
- spec/spec_helper.rb
|
177
177
|
- spec/support/custom_matchers.rb
|
178
|
+
has_rdoc:
|