class LogStash::MultiQueue
Attributes
logger[RW]
Public Class Methods
new(*queues)
click to toggle source
# File lib/logstash/multiqueue.rb, line 9 def initialize(*queues) @logger = Cabin::Channel.get(LogStash) @mutex = Mutex.new @queues = queues end
Public Instance Methods
add_queue(queue)
click to toggle source
Add a new Queue to this queue.
# File lib/logstash/multiqueue.rb, line 36 def add_queue(queue) @mutex.synchronize do @queues << queue end end
logger=(_logger)
click to toggle source
# File lib/logstash/multiqueue.rb, line 16 def logger=(_logger) @logger = _logger # Set the logger for all known queues, too. @queues.each do |q| q.logger = _logger end end
push(object)
click to toggle source
Push an object to all queues.
# File lib/logstash/multiqueue.rb, line 27 def push(object) @queues.each { |q| q.push(object) } end
Also aliased as: <<, <<
remove_queue(queue)
click to toggle source
# File lib/logstash/multiqueue.rb, line 43 def remove_queue(queue) @mutex.synchronize do @queues.delete(queue) end end
size()
click to toggle source
# File lib/logstash/multiqueue.rb, line 50 def size return @queues.collect { |q| q.size } end