class SeaMule::Queue
Attributes
name[R]
redis_name[R]
Public Class Methods
new(name, redis)
click to toggle source
Calls superclass method
# File lib/seamule/queue.rb, line 7 def initialize(name, redis) super() @name = name @redis_name = "queue:#{@name}" @redis = redis @redis.sadd(:queues, @name) end
Public Instance Methods
empty?()
click to toggle source
# File lib/seamule/queue.rb, line 38 def empty? size == 0 end
length()
click to toggle source
# File lib/seamule/queue.rb, line 32 def length @redis.llen(@redis_name) end
Also aliased as: size
pop(id = nil)
click to toggle source
# File lib/seamule/queue.rb, line 28 def pop(id = nil) SeaMule.decode(@redis.lpop(@redis_name)) end
push(object)
click to toggle source
# File lib/seamule/queue.rb, line 15 def push(object) begin encoded_object = SeaMule.encode(object) rescue SeaMule::EncodeException => e SeaMule.logger.error "Invalid UTF-8 character in job: #{e.message}" return end @redis.rpush(@redis_name, encoded_object) end
Also aliased as: <<