Class: Aws::Plugins::RetryErrors Private
- Inherits:
- 
      Seahorse::Client::Plugin
      
        - Object
- Seahorse::Client::Plugin
- Aws::Plugins::RetryErrors
 
- Defined in:
- lib/aws-sdk-core/plugins/retry_errors.rb
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Defined Under Namespace
Classes: Handler, LegacyHandler
Constant Summary collapse
- EQUAL_JITTER =
          This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future. BEGIN LEGACY OPTIONS 
- ->(delay) { (delay / 2) + Kernel.rand(0..(delay / 2)) } 
- FULL_JITTER =
          This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future. 
- ->(delay) { Kernel.rand(0..delay) } 
- NO_JITTER =
          This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future. 
- ->(delay) { delay } 
- JITTERS =
          This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future. 
- { none: NO_JITTER, equal: EQUAL_JITTER, full: FULL_JITTER } 
- DEFAULT_BACKOFF =
          This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future. 
- lambda do |c| delay = 2**c.retries * c.config.retry_base_delay if (c.config.retry_max_delay || 0) > 0 delay = [delay, c.config.retry_max_delay].min end jitter = c.config.retry_jitter jitter = JITTERS[jitter] if jitter.is_a?(Symbol) delay = jitter.call(delay) if jitter Kernel.sleep(delay) end 
Class Method Summary collapse
- .resolve_adaptive_retry_wait_to_fill(cfg) ⇒ Object private
- .resolve_correct_clock_skew(cfg) ⇒ Object private
- .resolve_max_attempts(cfg) ⇒ Object private
- .resolve_retry_mode(cfg) ⇒ Object private
Instance Method Summary collapse
Methods inherited from Seahorse::Client::Plugin
#add_options, #after_initialize, after_initialize, after_initialize_hooks, #before_initialize, before_initialize, before_initialize_hooks, handlers, literal, option, options
Methods included from Seahorse::Client::HandlerBuilder
#handle, #handle_request, #handle_response, #handler_for, #new_handler
Class Method Details
.resolve_adaptive_retry_wait_to_fill(cfg) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 199 200 201 202 203 204 205 206 207 208 209 210 211 | # File 'lib/aws-sdk-core/plugins/retry_errors.rb', line 199 def self.resolve_adaptive_retry_wait_to_fill(cfg) value = ENV['AWS_ADAPTIVE_RETRY_WAIT_TO_FILL'] || Aws.shared_config.adaptive_retry_wait_to_fill(profile: cfg.profile) || 'true' # Raise if provided value is not true or false if value != 'true' && value != 'false' raise ArgumentError, 'Must provide either `true` or `false` for '\ 'adaptive_retry_wait_to_fill profile option or for '\ 'ENV[\'AWS_ADAPTIVE_RETRY_WAIT_TO_FILL\']' end value == 'true' end | 
.resolve_correct_clock_skew(cfg) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 213 214 215 216 217 218 219 220 221 222 223 224 225 | # File 'lib/aws-sdk-core/plugins/retry_errors.rb', line 213 def self.resolve_correct_clock_skew(cfg) value = ENV['AWS_CORRECT_CLOCK_SKEW'] || Aws.shared_config.correct_clock_skew(profile: cfg.profile) || 'true' # Raise if provided value is not true or false if value != 'true' && value != 'false' raise ArgumentError, 'Must provide either `true` or `false` for '\ 'correct_clock_skew profile option or for '\ 'ENV[\'AWS_CORRECT_CLOCK_SKEW\']' end value == 'true' end | 
.resolve_max_attempts(cfg) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 185 186 187 188 189 190 191 192 193 194 195 196 197 | # File 'lib/aws-sdk-core/plugins/retry_errors.rb', line 185 def self.resolve_max_attempts(cfg) value = (ENV['AWS_MAX_ATTEMPTS']) || Aws.shared_config.max_attempts(profile: cfg.profile) || '3' value = value.to_i # Raise if provided value is not a positive integer if value <= 0 raise ArgumentError, 'Must provide a positive integer for max_attempts profile '\ 'option or for ENV[\'AWS_MAX_ATTEMPTS\']' end value end | 
.resolve_retry_mode(cfg) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | # File 'lib/aws-sdk-core/plugins/retry_errors.rb', line 166 def self.resolve_retry_mode(cfg) default_mode_value = if cfg.respond_to?(:defaults_mode_config_resolver) cfg.defaults_mode_config_resolver.resolve(:retry_mode) end value = ENV['AWS_RETRY_MODE'] || Aws.shared_config.retry_mode(profile: cfg.profile) || default_mode_value || 'legacy' # Raise if provided value is not one of the retry modes if value != 'legacy' && value != 'standard' && value != 'adaptive' raise ArgumentError, 'Must provide either `legacy`, `standard`, or `adaptive` for '\ 'retry_mode profile option or for ENV[\'AWS_RETRY_MODE\']' end value end | 
Instance Method Details
#add_handlers(handlers, config) ⇒ Object
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
| 430 431 432 433 434 435 436 437 438 | # File 'lib/aws-sdk-core/plugins/retry_errors.rb', line 430 def add_handlers(handlers, config) if config.retry_mode == 'legacy' if config.retry_limit > 0 handlers.add(LegacyHandler, step: :sign, priority: 99) end else handlers.add(Handler, step: :sign, priority: 99) end end |