Class: SplitIoClient::Cache::Repositories::Events::MemoryRepository

Inherits:
SplitIoClient::Cache::Repositories::EventsRepository show all
Defined in:
lib/splitclient-rb/cache/repositories/events/memory_repository.rb

Constant Summary collapse

EVENTS_SLICE =
100

Instance Method Summary collapse

Methods inherited from SplitIoClient::Cache::Repository

#set_string, #string

Constructor Details

#initialize(adapter, config) ⇒ MemoryRepository

Returns a new instance of MemoryRepository.



8
9
10
11
# File 'lib/splitclient-rb/cache/repositories/events/memory_repository.rb', line 8

def initialize(adapter, config)
  @adapter = adapter
  @config = config
end

Instance Method Details

#add(key, traffic_type, event_type, time, value) ⇒ Object



13
14
15
16
17
18
19
20
21
# File 'lib/splitclient-rb/cache/repositories/events/memory_repository.rb', line 13

def add(key, traffic_type, event_type, time, value)
  @adapter.add_to_queue(m: , e: event(key, traffic_type, event_type, time, value))
rescue ThreadError # queue is full
  if @config.debug_enabled
    @config.logger.warn("Dropping events. Current size is #{@config.events_queue_size}. " \
                        "Consider increasing events_queue_size")
  end
  @adapter.clear
end

#clearObject



23
24
25
# File 'lib/splitclient-rb/cache/repositories/events/memory_repository.rb', line 23

def clear
  @adapter.clear
end