Module: HTTPX::Plugins::Retries

Defined in:
lib/httpx/plugins/retries.rb

Overview

This plugin adds support for retrying requests when errors happen.

It has a default max number of retries (see MAX_RETRIES and the max_retries option), after which it will return the last response, error or not. It will not raise an exception.

It does not retry which are not considered idempotent (see retry_change_requests to override).

gitlab.com/os85/httpx/wikis/Retries

Defined Under Namespace

Modules: InstanceMethods, OptionsMethods, RequestMethods, ResponseMethods

Constant Summary collapse

MAX_RETRIES =
3
IDEMPOTENT_METHODS =

TODO: pass max_retries in a configure/load block

%w[GET OPTIONS HEAD PUT DELETE].freeze
RETRYABLE_ERRORS =
[
  IOError,
  EOFError,
  Errno::ECONNRESET,
  Errno::ECONNABORTED,
  Errno::EPIPE,
  Errno::EINVAL,
  Errno::ETIMEDOUT,
  Parser::Error,
  TLSError,
  TimeoutError,
  ConnectionError,
  Connection::HTTP2::GoawayError,
].freeze
DEFAULT_JITTER =
->(interval) { interval * ((rand + 1) * 0.5) }

Class Method Summary collapse

Class Method Details

.extra_options(options) ⇒ Object



37
38
39
# File 'lib/httpx/plugins/retries.rb', line 37

def self.extra_options(options)
  options.merge(max_retries: MAX_RETRIES)
end