perfectqueue 0.7.18 → 0.7.19

Sign up to get free protection for your applications and to get access to all the features.
data/ChangeLog CHANGED
@@ -1,4 +1,9 @@
1
1
 
2
+ == 2012-01-26 version 0.7.19
3
+
4
+ * Don't stop MonitorThread while shutting down
5
+
6
+
2
7
  == 2012-01-15 version 0.7.18
3
8
 
4
9
  * Fixed expiration logic
@@ -1,5 +1,5 @@
1
1
  module PerfectQueue
2
2
 
3
- VERSION = '0.7.18'
3
+ VERSION = '0.7.19'
4
4
 
5
5
  end
@@ -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
- until @engine.finished?
33
+ unless @finished
34
34
  @mutex.synchronize {
35
35
  while true
36
- return if @engine.finished?
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 @engine.finished?
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
- while true
160
- @mutex.synchronize {
161
- while true
162
- return if @engine.finished?
163
- break if @token
164
- @cond.wait(@mutex)
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.18
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-16 00:00:00.000000000Z
12
+ date: 2012-01-24 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sequel
16
- requirement: &70358573096320 !ruby/object:Gem::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: *70358573096320
24
+ version_requirements: *2253754180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: aws-sdk
27
- requirement: &70358573087020 !ruby/object:Gem::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: *70358573087020
35
+ version_requirements: *2253753580
36
36
  description:
37
37
  email: frsyuki@gmail.com
38
38
  executables: