Sha256: 0c4c1c9492884b1f0f591fd180427cc7185b6c201b388f1453e72d518119614d

Contents?: true

Size: 831 Bytes

Versions: 64

Compression:

Stored size: 831 Bytes

Contents

# frozen_string_literal: true

module SplitIoClient
  module Telemetry
    class SyncTask
      def initialize(config, telemetry_synchronizer)
        @config = config
        @telemetry_synchronizer = telemetry_synchronizer
      end

      def call
        stats_thread
      end

      private

      def stats_thread
        @config.threads[:telemetry_stats_sender] = Thread.new { telemetry_sync_task }
      end

      def telemetry_sync_task
        @config.logger.info('Starting Telemetry Sync Task')

        loop do
          sleep(@config.telemetry_refresh_rate)

          @telemetry_synchronizer.synchronize_stats
        end
      rescue SplitIoClient::SDKShutdownException
        @telemetry_synchronizer.synchronize_stats

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

Version data entries

64 entries across 64 versions & 1 rubygems

Version Path
splitclient-rb-8.5.0-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.5.0 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.5.0.pre.rc1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.5.0.pre.rc1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.1.pre.rc1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.1.pre.rc1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.0-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.0 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.0.pre.rc1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.0.pre.rc1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.0.rc.1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.4.0.rc.1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.2.pre.rc2-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.2.pre.rc2 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.2.pre.rc1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.2.pre.rc1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.1.pre.rc1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.1.pre.rc1 lib/splitclient-rb/telemetry/sync_task.rb