Class: Flapjack::RecordQueue

Inherits:
Object
  • Object
show all
Defined in:
lib/flapjack/record_queue.rb

Instance Method Summary collapse

Constructor Details

#initialize(queue, object_klass) ⇒ RecordQueue

Returns a new instance of RecordQueue.



7
8
9
10
# File 'lib/flapjack/record_queue.rb', line 7

def initialize(queue, object_klass)
  @queue = queue
  @object_klass = object_klass
end

Instance Method Details

#foreach(options = {}) ⇒ Object



19
20
21
22
23
24
25
# File 'lib/flapjack/record_queue.rb', line 19

def foreach(options = {})
  while object_id = Flapjack.redis.rpop(@queue)
    next unless object = @object_klass.find_by_id(object_id)
    yield object if block_given?
    object.destroy unless options[:keep]
  end
end

#push(object) ⇒ Object



12
13
14
15
16
17
# File 'lib/flapjack/record_queue.rb', line 12

def push(object)
  Flapjack.redis.multi do
    Flapjack.redis.lpush(@queue, object.id)
    Flapjack.redis.lpush("#{@queue}_actions", "+")
  end
end

#waitObject



27
28
29
# File 'lib/flapjack/record_queue.rb', line 27

def wait
  Flapjack.redis.brpop("#{@queue}_actions")
end