perfectqueue 0.7.9 → 0.7.10

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 CHANGED
@@ -1,5 +1,5 @@
1
1
 
2
- == 2011-12-17 version 0.7.8, 0.7.9
2
+ == 2011-12-17 version 0.7.8, 0.7.9, 0.7.10
3
3
 
4
4
  * Supports resource limit
5
5
 
@@ -55,7 +55,7 @@ class RDBBackend < Backend
55
55
  begin
56
56
  while true
57
57
  rows = 0
58
- @db.fetch("SELECT id, timeout, data, created_at, resource FROM `#{@table}` AS T WHERE timeout <= ? AND (resource IS NULL OR (SELECT count(1) FROM `#{@table}` WHERE timeout > ? AND resource = T.resource) < #{MAX_RESOURCE}) ORDER BY timeout ASC LIMIT #{MAX_SELECT_ROW};", now, now) {|row|
58
+ @db.fetch("SELECT id, timeout, data, created_at, resource FROM `#{@table}` AS T WHERE timeout <= ? AND (resource IS NULL OR (SELECT count(1) FROM `#{@table}` WHERE timeout > ? AND created_at IS NOT NULL AND resource = T.resource) < #{MAX_RESOURCE}) ORDER BY timeout ASC LIMIT #{MAX_SELECT_ROW};", now, now) {|row|
59
59
 
60
60
  unless row[:created_at]
61
61
  # finished/canceled task
@@ -82,7 +82,7 @@ class RDBBackend < Backend
82
82
 
83
83
  def finish(id, delete_timeout=3600, now=Time.now.to_i)
84
84
  connect {
85
- n = @db["UPDATE `#{@table}` SET timeout=?, created_at=NULL WHERE id=? AND created_at IS NOT NULL;", now+delete_timeout, id].update
85
+ n = @db["UPDATE `#{@table}` SET timeout=?, created_at=NULL, resource=NULL WHERE id=? AND created_at IS NOT NULL;", now+delete_timeout, id].update
86
86
  return n > 0
87
87
  }
88
88
  end
@@ -1,5 +1,5 @@
1
1
  module PerfectQueue
2
2
 
3
- VERSION = '0.7.9'
3
+ VERSION = '0.7.10'
4
4
 
5
5
  end
data/test/backend_test.rb CHANGED
@@ -216,7 +216,7 @@ class BackendTest < Test::Unit::TestCase
216
216
  assert_equal 'data1', task.data
217
217
  end
218
218
 
219
- it 'resource' do
219
+ it 'resource limit' do
220
220
  clean_backend
221
221
 
222
222
  db1 = open_backend
@@ -230,10 +230,12 @@ class BackendTest < Test::Unit::TestCase
230
230
  ok = db1.submit(@key_prefix+'test5', 'data2', time, 'user2')
231
231
  assert_equal true, ok
232
232
 
233
+ token_1 = nil
234
+ task_1 = nil
233
235
  4.times do
234
- token, task = db1.acquire(time+TIMEOUT, time)
235
- assert_not_equal nil, task
236
- assert_equal "user1", task.resource
236
+ token_1, task_1 = db1.acquire(time+TIMEOUT, time)
237
+ assert_not_equal nil, task_1
238
+ assert_equal "user1", task_1.resource
237
239
  end
238
240
 
239
241
  token, task = db1.acquire(time+TIMEOUT, time)
@@ -242,6 +244,13 @@ class BackendTest < Test::Unit::TestCase
242
244
 
243
245
  token, task = db1.acquire(time+TIMEOUT, time)
244
246
  assert_equal nil, task
247
+
248
+ ok = db1.finish(token_1)
249
+ assert_equal true, ok
250
+
251
+ token, task = db1.acquire(time+TIMEOUT, time)
252
+ assert_not_equal nil, task
253
+ assert_equal "user1", task.resource
245
254
  end
246
255
  end
247
256
 
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.9
4
+ version: 0.7.10
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2011-12-17 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sequel
16
- requirement: &70264336756840 !ruby/object:Gem::Requirement
16
+ requirement: &70217971584580 !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: *70264336756840
24
+ version_requirements: *70217971584580
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: aws-sdk
27
- requirement: &70264336756360 !ruby/object:Gem::Requirement
27
+ requirement: &70217971580680 !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: *70264336756360
35
+ version_requirements: *70217971580680
36
36
  description:
37
37
  email: frsyuki@gmail.com
38
38
  executables: