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

<<(object)
Alias for: push
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: <<
size()
Alias for: length