Class: Rack::Throttle::Minute
- Inherits:
-
TimeWindow
- Object
- Limiter
- TimeWindow
- Rack::Throttle::Minute
- Defined in:
- lib/rack/throttle/minute.rb
Overview
This rate limiter strategy throttles the application by defining a maximum number of allowed HTTP requests per minute (by default, 60 requests per minute, 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 requests per distinct minute. This means that the throttling counter is reset every minute.
Constant Summary
Constants inherited from Limiter
Limiter::CODE, Limiter::MESSAGE
Instance Attribute Summary
Attributes inherited from Limiter
Instance Method Summary collapse
-
#initialize(app, options = {}) ⇒ Minute
constructor
A new instance of Minute.
- #max_per_minute ⇒ Object (also: #max_per_window)
- #retry_after ⇒ Object
Methods inherited from TimeWindow
Methods inherited from Limiter
#allowed?, #blacklisted?, #call, #whitelisted?
Constructor Details
#initialize(app, options = {}) ⇒ Minute
Returns a new instance of Minute.
23 24 25 |
# File 'lib/rack/throttle/minute.rb', line 23 def initialize(app, = {}) super end |
Instance Method Details
#max_per_minute ⇒ Object Also known as: max_per_window
28 29 30 |
# File 'lib/rack/throttle/minute.rb', line 28 def max_per_minute @max_per_hour ||= [:max_per_minute] || [:max] || 60 end |
#retry_after ⇒ Object
32 33 34 |
# File 'lib/rack/throttle/minute.rb', line 32 def retry_after "60" # simplification, because the strategy is not sliding end |