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.
- data/lib/http_retriable/version.rb +1 -1
- data/lib/http_retriable.rb +10 -3
- metadata +1 -1
data/lib/http_retriable.rb
CHANGED
@@ -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
|
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
|
-
|
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
|