Class: MsRest2::RetryPolicyMiddleware
- Inherits:
-
Faraday::Response::Middleware
- Object
- Faraday::Response::Middleware
- MsRest2::RetryPolicyMiddleware
- Defined in:
- lib/ms_rest2/retry_policy_middleware.rb
Overview
Class which handles retry policy.
Instance Method Summary collapse
-
#call(request_env) ⇒ Object
Performs request and response processing.
-
#initialize(app, options = {}) ⇒ RetryPolicyMiddleware
constructor
Initializes a new instance of the RetryPolicyMiddleware class.
Constructor Details
#initialize(app, options = {}) ⇒ RetryPolicyMiddleware
Initializes a new instance of the RetryPolicyMiddleware class.
13 14 15 16 17 18 |
# File 'lib/ms_rest2/retry_policy_middleware.rb', line 13 def initialize(app, = {}) @times = [:times] || 5 @delay = [:delay] || 0.01 super(app) end |
Instance Method Details
#call(request_env) ⇒ Object
Performs request and response processing.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/ms_rest2/retry_policy_middleware.rb', line 23 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. != 'faraday_retry' @times = @times - 1 retry end end |