class Sweatpants::RedisQueue
Attributes
redis[R]
Public Class Methods
new(params = {})
click to toggle source
# File lib/sweatpants/queue.rb, line 27 def initialize params = {} @list_name = params[:list] @redis = Redis.new(host: params[:host], port: params[:port]) @redis.select params[:database] end
Public Instance Methods
dequeue(count=nil)
click to toggle source
# File lib/sweatpants/queue.rb, line 37 def dequeue count=nil count = @redis.llen(@list_name) unless count multi_pop count end
enqueue(request)
click to toggle source
# File lib/sweatpants/queue.rb, line 33 def enqueue request @redis.rpush @list_name, request.to_json end
flushall()
click to toggle source
# File lib/sweatpants/queue.rb, line 50 def flushall @redis.flushall end
multi_pop(count)
click to toggle source
# File lib/sweatpants/queue.rb, line 42 def multi_pop count items = @redis.multi { peek count @redis.ltrim(@list_name, count, -1) }[0] items end
peek(count = nil)
click to toggle source
# File lib/sweatpants/queue.rb, line 54 def peek count = nil count = @redis.llen(@list_name) unless count @redis.lrange(@list_name, 0, count - 1) end