class Aptible::Resource::DefaultRetryCoordinator
Constants
- IDEMPOTENT_METHODS
- RETRY_ERRORS
Attributes
resource[R]
retry_schedule[R]
Public Class Methods
new(resource)
click to toggle source
# File lib/aptible/resource/default_retry_coordinator.rb, line 30 def initialize(resource) @resource = resource @retry_schedule = new_retry_schedule end
Public Instance Methods
retry?(method, err)
click to toggle source
# File lib/aptible/resource/default_retry_coordinator.rb, line 35 def retry?(method, err) # rubocop:disable Style/CaseEquality return false unless RETRY_ERRORS.any? { |c| c === err } return false unless IDEMPOTENT_METHODS.include?(method) retry_in = retry_schedule.shift return false if retry_in.nil? sleep retry_in true # rubocop:enable Style/CaseEquality end
Private Instance Methods
new_retry_schedule()
click to toggle source
# File lib/aptible/resource/default_retry_coordinator.rb, line 48 def new_retry_schedule [0.2, 0.8, 2] end