class SplitIoClient::Cache::Repositories::Impressions::MemoryRepository
def add_bulk(impressions)
def add_bulk(impressions) return 0 if impressions.nil? count = 0 impressions.each do |impression| @adapter.add_to_queue(impression) count += 1 end 0 rescue ThreadError # queue is full if random_sampler.rand(1..1000) <= 2 # log only 0.2 % of the time @config.logger.warn("Dropping impressions. Current size is \ #{@config.impressions_queue_size}. " \ 'Consider increasing impressions_queue_size') end impressions.length - count end
def batch
def batch return [] if @config.impressions_bulk_size.zero? @adapter.get_batch(@config.impressions_bulk_size) end
def clear
def clear @adapter.clear end
def empty?
def empty? @adapter.empty? end
def initialize(config)
def initialize(config) @config = config @adapter = @config.impressions_adapter end
def random_sampler
def random_sampler @random_sampler ||= Random.new end