http_retriable 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
1
  module HttpRetriable
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -22,18 +22,23 @@ module HttpRetriable
22
22
  backoff = !should_sleep # if sleep is provided by the user, don't backoff
23
23
  exceptions = options.fetch(:exceptions, default_exceptions)
24
24
  quick_retries = options.fetch(:quick_retries, 2)
25
+ logger = options.fetch(:logger, Logger.new($stderr))
25
26
 
26
27
  retried = 0
28
+ quick_retried = 0
27
29
  seconds_to_sleep = should_sleep ? should_sleep : 2
28
30
  begin
29
31
  yield
30
32
  rescue *exceptions => e
31
- retried += 1
32
33
  if backoff
33
- if retried < quick_retries
34
+ if quick_retried < quick_retries
35
+ quick_retried += 1
36
+ logger.debug("[HTTP_RETRIABLE] quick retry: #{quick_retried}/#{quick_retries}")
34
37
  retry
35
38
  elsif retried < retries
36
- seconds_to_sleep = seconds_to_sleep ** 2
39
+ retried += 1
40
+ seconds_to_sleep = 2 ** retried
41
+ logger.debug("[HTTP_RETRIABLE] backoff retry: #{retried}/#{retries} sleeping for: #{seconds_to_sleep}s")
37
42
  sleep seconds_to_sleep
38
43
  retry
39
44
  else
@@ -41,6 +46,8 @@ module HttpRetriable
41
46
  end
42
47
  else
43
48
  if retried < retries
49
+ logger.debug("[HTTP_RETRIABLE] retry: #{retried}/#{retries} sleeping for: #{seconds_to_sleep}s")
50
+ retried += 1
44
51
  sleep seconds_to_sleep
45
52
  retry
46
53
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: http_retriable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: