perfectqueue 0.7.18 → 0.7.19
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/ChangeLog +5 -0
- data/lib/perfectqueue/version.rb +1 -1
- data/lib/perfectqueue/worker.rb +23 -18
- metadata +6 -6
data/ChangeLog
CHANGED
data/lib/perfectqueue/version.rb
CHANGED
data/lib/perfectqueue/worker.rb
CHANGED
@@ -7,6 +7,7 @@ class MonitorThread
|
|
7
7
|
@engine = engine
|
8
8
|
@log = @engine.log
|
9
9
|
@backend = engine.backend
|
10
|
+
@finished = false
|
10
11
|
|
11
12
|
@timeout = conf[:timeout] || 600
|
12
13
|
@heartbeat_interval = conf[:heartbeat_interval] || @timeout*3/4
|
@@ -25,15 +26,14 @@ class MonitorThread
|
|
25
26
|
end
|
26
27
|
|
27
28
|
def start
|
28
|
-
@log.debug "running worker."
|
29
29
|
@thread = Thread.new(&method(:run))
|
30
30
|
end
|
31
31
|
|
32
32
|
def run
|
33
|
-
|
33
|
+
unless @finished
|
34
34
|
@mutex.synchronize {
|
35
35
|
while true
|
36
|
-
return if @
|
36
|
+
return if @finished
|
37
37
|
break if @token
|
38
38
|
@cond.wait(@mutex)
|
39
39
|
end
|
@@ -48,7 +48,7 @@ class MonitorThread
|
|
48
48
|
while true
|
49
49
|
sleep 1
|
50
50
|
@mutex.synchronize {
|
51
|
-
return if @
|
51
|
+
return if @finished
|
52
52
|
return unless @token
|
53
53
|
now = Time.now.to_i
|
54
54
|
try_extend(now)
|
@@ -94,6 +94,7 @@ class MonitorThread
|
|
94
94
|
|
95
95
|
def stop
|
96
96
|
@mutex.synchronize {
|
97
|
+
@finished = true
|
97
98
|
@cond.broadcast
|
98
99
|
}
|
99
100
|
end
|
@@ -151,25 +152,30 @@ class Worker
|
|
151
152
|
end
|
152
153
|
|
153
154
|
def start
|
155
|
+
@log.debug "running worker."
|
154
156
|
@thread = Thread.new(&method(:run))
|
155
|
-
@monitor.start
|
156
157
|
end
|
157
158
|
|
158
159
|
def run
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
160
|
+
@monitor.start
|
161
|
+
begin
|
162
|
+
while true
|
163
|
+
@mutex.synchronize {
|
164
|
+
while true
|
165
|
+
return if @engine.finished?
|
166
|
+
break if @token
|
167
|
+
@cond.wait(@mutex)
|
168
|
+
end
|
169
|
+
}
|
170
|
+
begin
|
171
|
+
process(@token, @task)
|
172
|
+
ensure
|
173
|
+
@token = nil
|
174
|
+
@engine.release_worker(self)
|
165
175
|
end
|
166
|
-
}
|
167
|
-
begin
|
168
|
-
process(@token, @task)
|
169
|
-
ensure
|
170
|
-
@token = nil
|
171
|
-
@engine.release_worker(self)
|
172
176
|
end
|
177
|
+
ensure
|
178
|
+
@monitor.stop
|
173
179
|
end
|
174
180
|
rescue
|
175
181
|
@engine.stop($!)
|
@@ -205,7 +211,6 @@ class Worker
|
|
205
211
|
|
206
212
|
def stop
|
207
213
|
submit(nil, nil)
|
208
|
-
@monitor.stop
|
209
214
|
end
|
210
215
|
|
211
216
|
def shutdown
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: perfectqueue
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.19
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-24 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sequel
|
16
|
-
requirement: &
|
16
|
+
requirement: &2253754180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: 3.26.0
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *2253754180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: aws-sdk
|
27
|
-
requirement: &
|
27
|
+
requirement: &2253753580 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 1.1.1
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *2253753580
|
36
36
|
description:
|
37
37
|
email: frsyuki@gmail.com
|
38
38
|
executables:
|