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.3.0-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.0 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.0.pre.rc3-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.0.pre.rc3 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.0.pre.rc2-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.0.pre.rc2 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.0.pre.rc1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.3.0.pre.rc1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.2.0-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.2.0 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc4-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc4 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc3-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc3 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc2-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc2 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc1-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.3.pre.rc1 lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.2-java lib/splitclient-rb/telemetry/sync_task.rb
splitclient-rb-8.1.2 lib/splitclient-rb/telemetry/sync_task.rb