Class: TaskTempest::Producer

Inherits:
Object
  • Object
show all
Defined in:
lib/task_tempest/producer.rb

Constant Summary collapse

DEFAULTS =
{
  :delay => 1,
  :buffer_size => 1
}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(queue, logger, options = {}) ⇒ Producer

Returns a new instance of Producer.



14
15
16
17
18
19
20
21
# File 'lib/task_tempest/producer.rb', line 14

def initialize(queue, logger, options = {})
  options = DEFAULTS.merge(options)
  @queue = queue
  @logger = logger
  @delay = options[:delay]
  @buffer = SizedQueue.new(options[:buffer_size])
  Thread.new{ run }
end

Instance Attribute Details

#loggerObject (readonly)

Returns the value of attribute logger.



7
8
9
# File 'lib/task_tempest/producer.rb', line 7

def logger
  @logger
end

Instance Method Details

#consumeObject



23
24
25
26
27
28
29
# File 'lib/task_tempest/producer.rb', line 23

def consume
  if @buffer.size > 0
    @buffer.pop
  else
    nil
  end
end