kthxbye 1.1.0 → 1.1.1
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.
- data/lib/kthxbye/version.rb +1 -1
- data/lib/kthxbye/worker.rb +26 -0
- metadata +6 -3
data/lib/kthxbye/version.rb
CHANGED
data/lib/kthxbye/worker.rb
CHANGED
@@ -93,10 +93,28 @@ module Kthxbye
|
|
93
93
|
|
94
94
|
# Run startup actions
|
95
95
|
def startup #:nodoc:
|
96
|
+
clean_workers
|
96
97
|
register_worker
|
97
98
|
register_signals
|
98
99
|
end
|
99
100
|
|
101
|
+
# This method cleans Redis of all workers that no longer exist that may have
|
102
|
+
# been left over from a previous dirty shutdown (GC)
|
103
|
+
def clean_workers
|
104
|
+
workers = Kthxbye.workers
|
105
|
+
known = worker_pids
|
106
|
+
puts workers
|
107
|
+
puts known
|
108
|
+
workers.each do |worker|
|
109
|
+
host,pid,queues = worker.id.split(":")
|
110
|
+
next unless host == hostname
|
111
|
+
next if known.include?(pid)
|
112
|
+
log "Pruning unknown worker: #{worker}"
|
113
|
+
worker.unregister_worker
|
114
|
+
end
|
115
|
+
|
116
|
+
end
|
117
|
+
|
100
118
|
# Adds this worker to the worker registry
|
101
119
|
def register_worker
|
102
120
|
log "Registered worker #{self}"
|
@@ -221,6 +239,14 @@ module Kthxbye
|
|
221
239
|
Process.pid
|
222
240
|
end
|
223
241
|
|
242
|
+
# Returns an array of string pids of all the other workers on this
|
243
|
+
# machine. Useful when pruning dead workers on startup.
|
244
|
+
def worker_pids
|
245
|
+
`ps -A -o pid,command | grep kthxbye`.split("\n").map do |line|
|
246
|
+
line.split(' ')[0]
|
247
|
+
end
|
248
|
+
end
|
249
|
+
|
224
250
|
# Returns a useful id with the hostname:pid:queues listing
|
225
251
|
# Same return as to_s
|
226
252
|
def id
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kthxbye
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 17
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 1
|
7
8
|
- 1
|
8
|
-
-
|
9
|
-
version: 1.1.
|
9
|
+
- 1
|
10
|
+
version: 1.1.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Luke van der Hoeven
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-10-
|
18
|
+
date: 2010-10-06 00:00:00 -04:00
|
18
19
|
default_executable:
|
19
20
|
dependencies: []
|
20
21
|
|
@@ -84,6 +85,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
84
85
|
requirements:
|
85
86
|
- - ">="
|
86
87
|
- !ruby/object:Gem::Version
|
88
|
+
hash: 3
|
87
89
|
segments:
|
88
90
|
- 0
|
89
91
|
version: "0"
|
@@ -92,6 +94,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
92
94
|
requirements:
|
93
95
|
- - ">="
|
94
96
|
- !ruby/object:Gem::Version
|
97
|
+
hash: 23
|
95
98
|
segments:
|
96
99
|
- 1
|
97
100
|
- 3
|