Sha256: c24856abb80dec6b9f15728b2156ad2ad5b3d9675d5e6393ff759a61f3f05e88

Contents?: true

Size: 1.01 KB

Versions: 10

Compression:

Stored size: 1.01 KB

Contents

module SplitIoClient
  module Cache
    module Repositories
      module Events
        class RedisRepository < EventsRepository
          EVENTS_SLICE = 100

          def initialize(adapter)
            @adapter = adapter
          end

          def add(key, traffic_type, event_type, time, value)
            @adapter.add_to_queue(
              namespace_key('.events'),
              { m: metadata, e: event(key, traffic_type, event_type, time, value) }.to_json,
            )
          end

          def get_events(number_of_events = 0)
            @adapter.get_from_queue(namespace_key('.events'), number_of_events).map do |e|
              JSON.parse(e, symbolize_names: true)
            end
          rescue StandardError => e
            SplitIoClient.configuration.logger.error("Exception while clearing events cache: #{e}")
            []
          end

          def batch
            get_events(EVENTS_SLICE)
          end

          def clear
            get_events
          end

        end
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
splitclient-rb-6.3.0-java lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.3.0 lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.3.0.pre.rc1-java lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.3.0.pre.rc1 lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.2.0-java lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.2.0 lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.2.0.pre.rc2-java lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.2.0.pre.rc2 lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.2.0.pre.rc1-java lib/splitclient-rb/cache/repositories/events/redis_repository.rb
splitclient-rb-6.2.0.pre.rc1 lib/splitclient-rb/cache/repositories/events/redis_repository.rb