class S3DataPacker::Queue

Attributes

items[R]
total_items[R]

Public Class Methods

new(opts = {}) click to toggle source
# File lib/s3_data_packer/queue.rb, line 5
def initialize opts = {}
  @max_items = opts[:max_items]
  @wait_time = opts[:wait_time]
  @total_items = 0
end

Public Instance Methods

add!(item) click to toggle source
# File lib/s3_data_packer/queue.rb, line 23
def add!(item)
  items << item
  @total_items += 1
  if size >= max_items
    S3DataPacker.logger.info "Queue full, pausing"
    sleep(wait_time)
    S3DataPacker.logger.info "Resuming queue"
  end
end
fetch!() click to toggle source
# File lib/s3_data_packer/queue.rb, line 33
def fetch!
  items.shift
end
max_items() click to toggle source
# File lib/s3_data_packer/queue.rb, line 11
def max_items
  @max_items ||= S3DataPacker.config.max_queue_size
end
reset!() click to toggle source
# File lib/s3_data_packer/queue.rb, line 41
def reset!
  @items = []
  @total_items = 0
end
size() click to toggle source
# File lib/s3_data_packer/queue.rb, line 37
def size
  items.size
end
wait_time() click to toggle source
# File lib/s3_data_packer/queue.rb, line 15
def wait_time
  @wait_time ||= S3DataPacker.config.max_queue_wait
end