@@ -9,20 +9,23 @@ module Resque
9
9
class Queue
10
10
include Mutex_m
11
11
12
+ attr_reader :name , :redis_name
13
+
12
14
###
13
15
# Create a new Queue object with +name+ on +redis+ connection, and using
14
16
# the +coder+ for encoding and decoding objects that are stored in redis.
15
17
def initialize name , redis , coder = Marshal
16
18
super ( )
17
- @name = "queue:#{ name } "
18
- @redis = redis
19
- @coder = coder
19
+ @name = name
20
+ @redis_name = "queue:#{ @name } "
21
+ @redis = redis
22
+ @coder = coder
20
23
end
21
24
22
25
# Add +object+ to the queue
23
26
def push object
24
27
synchronize do
25
- @redis . rpush @name , encode ( object )
28
+ @redis . rpush @redis_name , encode ( object )
26
29
end
27
30
end
28
31
@@ -34,11 +37,11 @@ def push object
34
37
def slice start , length
35
38
if length == 1
36
39
synchronize do
37
- decode @redis . lindex @name , start
40
+ decode @redis . lindex @redis_name , start
38
41
end
39
42
else
40
43
synchronize do
41
- Array ( @redis . lrange ( @name , start , start + length - 1 ) ) . map do |item |
44
+ Array ( @redis . lrange ( @redis_name , start , start + length - 1 ) ) . map do |item |
42
45
decode item
43
46
end
44
47
end
@@ -53,21 +56,21 @@ def slice start, length
53
56
def pop non_block = false
54
57
if non_block
55
58
synchronize do
56
- value = @redis . lpop ( @name )
59
+ value = @redis . lpop ( @redis_name )
57
60
raise ThreadError unless value
58
61
decode value
59
62
end
60
63
else
61
64
synchronize do
62
- value = @redis . blpop ( @name , 1 ) until value
65
+ value = @redis . blpop ( @redis_name , 1 ) until value
63
66
decode value . last
64
67
end
65
68
end
66
69
end
67
70
68
71
# Get the length of the queue
69
72
def length
70
- @redis . llen @name
73
+ @redis . llen @redis_name
71
74
end
72
75
alias :size :length
73
76
@@ -79,7 +82,7 @@ def empty?
79
82
# Deletes this Queue from redis. This method is *not* available on the
80
83
# stdlib Queue.
81
84
def destroy
82
- @redis . del @name
85
+ @redis . del @redis_name
83
86
end
84
87
85
88
private
0 commit comments