module SeaMule

Constants

DEFAULT_QUEUE
QUEUES
VERSION

Attributes

coder[W]
logger[RW]
redis[R]

Public Instance Methods

backend() click to toggle source
# File lib/seamule.rb, line 36
def backend
  @backend ||= Backend.new(@redis, SeaMule.logger)
end
coder() click to toggle source
# File lib/seamule.rb, line 54
def coder
  @coder ||= JsonEncoder.new
end
create_queues() click to toggle source
# File lib/seamule.rb, line 47
def create_queues
  @queues = {}
  QUEUES.each do |queue_name|
    @queues[queue_name] = SeaMule::Queue.new(queue_name, @redis)
  end
end
decode(object) click to toggle source
# File lib/seamule.rb, line 32
def decode(object)
  coder.decode(object)
end
dequeue(queue, klass: nil, payload: nil, id: nil) click to toggle source
# File lib/seamule.rb, line 97
def dequeue(queue, klass: nil, payload: nil, id: nil)
  Job.destroy(queue, klass: klass, payload: payload, id: id)
end
encode(object) click to toggle source
# File lib/seamule.rb, line 28
def encode(object)
  coder.encode(object)
end
enqueue(klass, payload, meta = nil) click to toggle source
# File lib/seamule.rb, line 89
def enqueue(klass, payload, meta = nil)
  enqueue_to(DEFAULT_QUEUE, klass, payload, meta)
end
enqueue_to(queue, klass, payload, meta) click to toggle source
# File lib/seamule.rb, line 93
def enqueue_to(queue, klass, payload, meta)
  Job.create(queue, klass, payload, meta)
end
keys() click to toggle source
# File lib/seamule.rb, line 105
def keys
  backend.store.keys('*')
end
pop(queue, id = nil) click to toggle source
# File lib/seamule.rb, line 62
def pop(queue, id = nil)
  queue(queue).pop(id)
end
pop_and_push(from_queue, to_queue) click to toggle source
# File lib/seamule.rb, line 66
def pop_and_push(from_queue, to_queue)
  job = pop(from_queue)
  push(to_queue, job) if job
  job
end
push(queue, item) click to toggle source
# File lib/seamule.rb, line 58
def push(queue, item)
  queue(queue) << item
end
queue(name) click to toggle source
# File lib/seamule.rb, line 85
def queue(name)
  @queues[name.to_s]
end
queued(queue, klass: nil, payload: nil, id: nil) click to toggle source
# File lib/seamule.rb, line 101
def queued(queue, klass: nil, payload: nil, id: nil)
  Job.queued(queue, klass: klass, payload: payload, id: id)
end
queues() click to toggle source
# File lib/seamule.rb, line 76
def queues
  Array(backend.store.smembers(:queues))
end
redis=(server) click to toggle source
# File lib/seamule.rb, line 40
def redis=(server)
  @redis = Backend.connect(server) unless server.nil?
  @backend = Backend.new(@redis, SeaMule.logger)
  create_queues
  @redis
end
remove_queue(queue) click to toggle source
# File lib/seamule.rb, line 80
def remove_queue(queue)
  queue(queue).destroy
  @queues.delete(queue.to_s)
end
size(queue) click to toggle source
# File lib/seamule.rb, line 72
def size(queue)
  queue(queue).size
end