Method: Datadog::Core::TokenBucket#initialize
- Defined in:
- lib/datadog/core/rate_limiter.rb
#initialize(rate, max_tokens = rate) ⇒ TokenBucket
Returns a new instance of TokenBucket.
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/datadog/core/rate_limiter.rb', line 36 def initialize(rate, max_tokens = rate) super() raise ArgumentError, "rate must be a number: #{rate}" unless rate.is_a?(Numeric) raise ArgumentError, "max_tokens must be a number: #{max_tokens}" unless max_tokens.is_a?(Numeric) @rate = rate @max_tokens = max_tokens @tokens = max_tokens @total_messages = 0 @conforming_messages = 0 @prev_conforming_messages = nil @prev_total_messages = nil @current_window = nil @last_refill = Core::Utils::Time.get_time end |