Module: RetryableTyphoeus::HydraExtension

Defined in:
lib/retryable_typhoeus.rb

Instance Method Summary collapse

Instance Method Details

#queue_with_retry(request, opts = {}) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/retryable_typhoeus.rb', line 24

def queue_with_retry(request, opts = {})
  request.retries = (opts[:retries] || RetryableTyphoeus::DEFAULT_RETRIES).to_i
  request.original_on_complete ||= request.on_complete
  request.on_complete do |response|
    if response.success? || response.request.retries <= 0
      request.original_on_complete.map do |callback|
        response.handled_response = callback.call(response)
      end
    else
      response.request.retries -= 1
      queue response.request
    end
  end
  queue request
end