class Jober::Queue
Attributes
queue_name[RW]
queue_name_base[RW]
Public Class Methods
dequeue(*args)
click to toggle source
# File lib/jober/queue.rb, line 25 def self.dequeue(*args) Jober.redis.lpush(queue_name, Jober.dump_args(*args)) end
enqueue(*args)
click to toggle source
# File lib/jober/queue.rb, line 21 def self.enqueue(*args) Jober.redis.rpush(queue_name, Jober.dump_args(*args)) end
inherited(base)
click to toggle source
Calls superclass method
Jober::Task::inherited
# File lib/jober/queue.rb, line 3 def self.inherited(base) super base.set_queue_name(base.short_name) end
len()
click to toggle source
# File lib/jober/queue.rb, line 29 def self.len Jober.redis.llen(self.queue_name) end
set_queue_name(q)
click to toggle source
# File lib/jober/queue.rb, line 11 def set_queue_name(q) @queue_name_base = q @queue_name = Jober.key("queue:#{q}") end
Public Instance Methods
len()
click to toggle source
# File lib/jober/queue.rb, line 33 def len self.class.len end
pop()
click to toggle source
# File lib/jober/queue.rb, line 37 def pop res = Jober.redis.lpop(queue_name) Jober.load(res) if res end
queue_name()
click to toggle source
# File lib/jober/queue.rb, line 17 def queue_name self.class.queue_name end
retry_event()
click to toggle source
# File lib/jober/queue.rb, line 57 def retry_event self.class.dequeue(*@args) if @args end
retry_event_later()
click to toggle source
# File lib/jober/queue.rb, line 61 def retry_event_later self.class.enqueue(*@args) if @args end
run()
click to toggle source
# File lib/jober/queue.rb, line 42 def run cnt = 0 while @args = pop perform(*@args) cnt += 1 if stopped break end info { "processed #{cnt}" } if cnt % 1000 == 0 end info { "processed total #{cnt}" } end