Class: Resque::DataStore::QueueAccess
- Inherits:
-
Object
- Object
- Resque::DataStore::QueueAccess
- Defined in:
- lib/resque/data_store.rb
Instance Method Summary collapse
- #everything_in_queue(queue) ⇒ Object
-
#initialize(redis) ⇒ QueueAccess
constructor
A new instance of QueueAccess.
-
#list_range(key, start = 0, count = 1) ⇒ Object
Private: do not call.
-
#peek_in_queue(queue, start = 0, count = 1) ⇒ Object
Examine items in the queue.
-
#pop_from_queue(queue) ⇒ Object
Pop whatever is on queue.
- #push_to_queue(queue, encoded_item) ⇒ Object
- #queue_names ⇒ Object
-
#queue_size(queue) ⇒ Object
Get the number of items in the queue.
-
#remove_from_queue(queue, data) ⇒ Object
Remove data from the queue, if it’s there, returning the number of removed elements.
- #remove_queue(queue) ⇒ Object
-
#watch_queue(queue) ⇒ Object
Private: do not call.
Constructor Details
#initialize(redis) ⇒ QueueAccess
Returns a new instance of QueueAccess.
99 100 101 |
# File 'lib/resque/data_store.rb', line 99 def initialize(redis) @redis = redis end |
Instance Method Details
#everything_in_queue(queue) ⇒ Object
138 139 140 |
# File 'lib/resque/data_store.rb', line 138 def everything_in_queue(queue) @redis.lrange(redis_key_for_queue(queue), 0, -1) end |
#list_range(key, start = 0, count = 1) ⇒ Object
Private: do not call
153 154 155 156 157 158 159 |
# File 'lib/resque/data_store.rb', line 153 def list_range(key, start = 0, count = 1) if count == 1 @redis.lindex(key, start) else Array(@redis.lrange(key, start, start+count-1)) end end |
#peek_in_queue(queue, start = 0, count = 1) ⇒ Object
Examine items in the queue.
NOTE: if count is 1, you will get back an object, otherwise you will
get an Array. I'm not making this up.
123 124 125 |
# File 'lib/resque/data_store.rb', line 123 def peek_in_queue(queue, start = 0, count = 1) list_range(redis_key_for_queue(queue), start, count) end |
#pop_from_queue(queue) ⇒ Object
Pop whatever is on queue
110 111 112 |
# File 'lib/resque/data_store.rb', line 110 def pop_from_queue(queue) @redis.lpop(redis_key_for_queue(queue)) end |
#push_to_queue(queue, encoded_item) ⇒ Object
102 103 104 105 106 107 |
# File 'lib/resque/data_store.rb', line 102 def push_to_queue(queue,encoded_item) @redis.pipelined do watch_queue(queue) @redis.rpush redis_key_for_queue(queue), encoded_item end end |
#queue_names ⇒ Object
127 128 129 |
# File 'lib/resque/data_store.rb', line 127 def queue_names Array(@redis.smembers(:queues)) end |
#queue_size(queue) ⇒ Object
Get the number of items in the queue
115 116 117 |
# File 'lib/resque/data_store.rb', line 115 def queue_size(queue) @redis.llen(redis_key_for_queue(queue)).to_i end |
#remove_from_queue(queue, data) ⇒ Object
Remove data from the queue, if it’s there, returning the number of removed elements
143 144 145 |
# File 'lib/resque/data_store.rb', line 143 def remove_from_queue(queue,data) @redis.lrem(redis_key_for_queue(queue), 0, data) end |
#remove_queue(queue) ⇒ Object
131 132 133 134 135 136 |
# File 'lib/resque/data_store.rb', line 131 def remove_queue(queue) @redis.pipelined do @redis.srem(:queues, queue.to_s) @redis.del(redis_key_for_queue(queue)) end end |
#watch_queue(queue) ⇒ Object
Private: do not call
148 149 150 |
# File 'lib/resque/data_store.rb', line 148 def watch_queue(queue) @redis.sadd(:queues, queue.to_s) end |