lib/rack/throttle/interval.rb in rack-throttle-0.1.0 vs lib/rack/throttle/interval.rb in rack-throttle-0.2.0
- old
+ new
@@ -27,20 +27,29 @@
# @param [Rack::Request] request
# @return [Boolean]
def allowed?(request)
t1 = request_start_time(request)
t0 = cache_get(key = cache_key(request)) rescue nil
- allowed = !t0 || (t1 - t0.to_f) >= minimum_interval
+ allowed = !t0 || (dt = t1 - t0.to_f) >= minimum_interval
begin
cache_set(key, t1)
allowed
rescue => e
# If an error occurred while trying to update the timestamp stored
# in the cache, we will fall back to allowing the request through.
# This prevents the Rack application blowing up merely due to a
# backend cache server (Memcached, Redis, etc.) being offline.
allowed = true
end
+ end
+
+ ##
+ # Returns the number of seconds before the client is allowed to retry an
+ # HTTP request.
+ #
+ # @return [Float]
+ def retry_after
+ minimum_interval
end
##
# Returns the required minimal interval (in terms of seconds) that must
# elapse between two subsequent HTTP requests.