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 +1 -1
- data/lib/perfectqueue/backend/rdb.rb +2 -2
- data/lib/perfectqueue/version.rb +1 -1
- data/test/backend_test.rb +13 -4
- metadata +5 -5
data/ChangeLog
CHANGED
@@ -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
|
data/lib/perfectqueue/version.rb
CHANGED
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
|
-
|
235
|
-
assert_not_equal nil,
|
236
|
-
assert_equal "user1",
|
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.
|
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: &
|
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: *
|
24
|
+
version_requirements: *70217971584580
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: aws-sdk
|
27
|
-
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: *
|
35
|
+
version_requirements: *70217971580680
|
36
36
|
description:
|
37
37
|
email: frsyuki@gmail.com
|
38
38
|
executables:
|