File tree Expand file tree Collapse file tree 2 files changed +8
-5
lines changed Expand file tree Collapse file tree 2 files changed +8
-5
lines changed Original file line number Diff line number Diff line change @@ -25,7 +25,7 @@ def initialize(queues, redis)
25
25
end
26
26
27
27
# Pop an item off one of the queues. This method will block until an item
28
- # is available.
28
+ # is available. This method returns a tuple of the queue object and job.
29
29
#
30
30
# Pass +true+ for a non-blocking pop. If nothing is read on a non-blocking
31
31
# pop, a ThreadError is raised.
@@ -36,7 +36,7 @@ def pop(non_block = false)
36
36
37
37
@queues . values . each do |queue |
38
38
begin
39
- return queue . pop ( true )
39
+ return [ queue , queue . pop ( true ) ]
40
40
rescue ThreadError
41
41
end
42
42
end
@@ -48,7 +48,8 @@ def pop(non_block = false)
48
48
synchronize do
49
49
value = @redis . blpop ( *( queue_names + [ 1 ] ) ) until value
50
50
queue_name , payload = value
51
- @queues [ queue_name ] . decode ( payload )
51
+ queue = @queues [ queue_name ]
52
+ [ queue , queue . decode ( payload ) ]
52
53
end
53
54
end
54
55
end
Original file line number Diff line number Diff line change 16
16
17
17
job = { 'class' => 'GoodJob' , 'args' => [ 35 , 'tar' ] }
18
18
bar << job
19
- assert_equal job , t . join . value
19
+
20
+ assert_equal [ bar , job ] , t . join . value
20
21
end
21
22
22
23
it "nonblocking pop works" do
26
27
27
28
job = { 'class' => 'GoodJob' , 'args' => [ 35 , 'tar' ] }
28
29
bar << job
29
- assert_equal job , queue . pop ( true )
30
+
31
+ assert_equal [ bar , job ] , queue . pop ( true )
30
32
end
31
33
32
34
it "blocks forever on pop" do
You can’t perform that action at this time.
0 commit comments