# File lib/resque/data_store.rb, line 115 def initialize(redis) @redis = redis end
# File lib/resque/data_store.rb, line 154 def everything_in_queue(queue) @redis.lrange(redis_key_for_queue(queue), 0, -1) end
Private: do not call
# File lib/resque/data_store.rb, line 169 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
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.
# File lib/resque/data_store.rb, line 139 def peek_in_queue(queue, start = 0, count = 1) list_range(redis_key_for_queue(queue), start, count) end
Pop whatever is on queue
# File lib/resque/data_store.rb, line 126 def pop_from_queue(queue) @redis.lpop(redis_key_for_queue(queue)) end
# File lib/resque/data_store.rb, line 118 def push_to_queue(queue,encoded_item) @redis.pipelined do watch_queue(queue) @redis.rpush redis_key_for_queue(queue), encoded_item end end
# File lib/resque/data_store.rb, line 143 def queue_names Array(@redis.smembers(:queues)) end
Get the number of items in the queue
# File lib/resque/data_store.rb, line 131 def queue_size(queue) @redis.llen(redis_key_for_queue(queue)).to_i end
Remove data from the queue, if it’s there, returning the number of removed elements
# File lib/resque/data_store.rb, line 159 def remove_from_queue(queue,data) @redis.lrem(redis_key_for_queue(queue), 0, data) end
# File lib/resque/data_store.rb, line 147 def remove_queue(queue) @redis.pipelined do @redis.srem(:queues, queue.to_s) @redis.del(redis_key_for_queue(queue)) end end
Private: do not call
# File lib/resque/data_store.rb, line 164 def watch_queue(queue) @redis.sadd(:queues, queue.to_s) end