class XRay::RulePoller

Polls sampling rules from X-Ray service

Attributes

cache[R]
connector[R]

Public Class Methods

new(cache:, connector:) click to toggle source
# File lib/aws-xray-sdk/sampling/rule_poller.rb, line 9
def initialize(cache:, connector:)
  @cache = cache
  @connector = connector
end

Public Instance Methods

run() click to toggle source
# File lib/aws-xray-sdk/sampling/rule_poller.rb, line 14
def run
  @worker ||= begin 
    Thread.new { poll }
  end
  @worker.run
end

Private Instance Methods

poll() click to toggle source
# File lib/aws-xray-sdk/sampling/rule_poller.rb, line 23
def poll
  loop do
    refresh_cache
    Thread.stop
  end
end
refresh_cache() click to toggle source
# File lib/aws-xray-sdk/sampling/rule_poller.rb, line 30
def refresh_cache
  now = Time.now.to_i
  rules = @connector.fetch_sampling_rules
  unless rules.nil? || rules.empty?
    @cache.load_rules(rules)
    @cache.last_updated = now
  end
rescue StandardError => e
  logger.warn %(failed to fetch X-Ray sampling rules due to #{e.message})
end