Class: Chokepoint::Hourly
- Inherits:
-
TimeWindow
- Object
- Limiter
- TimeWindow
- Chokepoint::Hourly
- Defined in:
- lib/chokepoint/hourly.rb
Overview
This rate limiter strategy throttles the block by defining a maximum number of allowed calls per hour (by default, 3,600 requests per 60 minutes, which works out to an average of 1 request per second).
Note that this strategy doesn’t use a sliding time window, but rather tracks calls per distinct hour. This means that the throttling counter is reset every hour on the hour (according to the local timezone).
Instance Attribute Summary
Attributes inherited from Limiter
Instance Method Summary collapse
-
#initialize(name, options = {}) ⇒ Hourly
constructor
A new instance of Hourly.
- #max_per_hour ⇒ Object (also: #max_per_window)
Methods inherited from TimeWindow
Methods inherited from Limiter
#allowed?, #blacklisted?, #throttle, #whitelisted?
Constructor Details
#initialize(name, options = {}) ⇒ Hourly
Returns a new instance of Hourly.
24 25 26 |
# File 'lib/chokepoint/hourly.rb', line 24 def initialize(name, = {}) super end |
Instance Method Details
#max_per_hour ⇒ Object Also known as: max_per_window
29 30 31 |
# File 'lib/chokepoint/hourly.rb', line 29 def max_per_hour @max_per_hour ||= [:max] || 3_600 end |