Sha256: 7cc47d92b0b83635553b0b513ca31f1085490ef324c085ae93a9ea9195bf937b

Contents?: true

Size: 1.23 KB

Versions: 62

Compression:

Stored size: 1.23 KB

Contents

# frozen_string_literal: true

module SplitIoClient
  module Cache
    module Senders
      class ImpressionsCountSender
        def initialize(config, impression_counter, impressions_sender_adapter)
          @config = config
          @impression_counter = impression_counter
          @impressions_sender_adapter = impressions_sender_adapter
        end

        def call
          impressions_count_thread
        end

        private

        def impressions_count_thread
          @config.threads[:impressions_count_sender] = Thread.new do
            begin
              @config.logger.info('Starting impressions count service')
              loop do
                sleep(@config.counter_refresh_rate)
                post_impressions_count                
              end
            rescue SplitIoClient::SDKShutdownException
              post_impressions_count

              @config.logger.info('Posting impressions count due to shutdown')
            end
          end
        end

        def post_impressions_count
          @impressions_sender_adapter.record_impressions_count(@impression_counter.pop_all)
        rescue StandardError => e
          @config.log_found_exception(__method__.to_s, e)
        end
      end
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
splitclient-rb-8.5.0-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.5.0 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.5.0.pre.rc1-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.5.0.pre.rc1 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.1.pre.rc1-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.1.pre.rc1 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.0-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.0 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.0.pre.rc1-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.0.pre.rc1 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.0.rc.1-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.4.0.rc.1 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.2.pre.rc2-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.2.pre.rc2 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.2.pre.rc1-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.2.pre.rc1 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.1-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.1 lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.1.pre.rc1-java lib/splitclient-rb/cache/senders/impressions_count_sender.rb
splitclient-rb-8.3.1.pre.rc1 lib/splitclient-rb/cache/senders/impressions_count_sender.rb