class MsRest::RetryPolicyMiddleware
Class which handles retry policy.
Public Class Methods
new(app, options = {})
click to toggle source
Initializes a new instance of the RetryPolicyMiddleware class.
Calls superclass method
# File lib/ms_rest/retry_policy_middleware.rb, line 12 def initialize(app, options = {}) @times = options[:times] || 5 @delay = options[:delay] || 0.01 super(app) end
Public Instance Methods
call(request_env)
click to toggle source
Performs request and response processing.
# File lib/ms_rest/retry_policy_middleware.rb, line 22 def call(request_env) request_body = request_env[:body] begin request_env[:body] = request_body @app.call(request_env).on_complete do |response_env| status_code = response_env.status if @times > 0 && (status_code == 408 || (status_code >= 500 && status_code != 501 && status_code != 505)) sleep @delay fail 'faraday_retry' end end rescue Exception => e raise e if e.message != 'faraday_retry' @times = @times - 1 retry end end