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