http_retriable 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -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: