README.md in backoff-0.1.1 vs README.md in backoff-0.2.0
- old
+ new
@@ -1,11 +1,9 @@
# Backoff
-Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/backoff`. To experiment with that code, run `bin/console` for an interactive prompt.
+Add exponential full jitter backoff to any object by proxy
-TODO: Delete this and the text above, and describe your gem
-
## Installation
Add this line to your application's Gemfile:
```ruby
@@ -27,24 +25,30 @@
require 'logger'
logger = Logger.new($stderr)
class Foo
class MyError < StandardError; end
class MyErrorTwo < StandardError; end
+
+ def initialize
+ @i = 0
+ end
+
def bar
- raise MyError if rand < 0.3
- raise MyErrorTwo if rand < 0.1
+ @i += 1
+ raise MyError if @i < 2
+ raise MyErrorTwo if @i < 4
true
end
end
# The second argument may be a exception class or a list of exception classes
foo_with_backoff = Backoff.wrap(Foo.new, [Foo::MyError, Foo::MyErrorTwo], logger, initial_backoff: 1, multiplier: 2)
p foo_with_backoff.bar
-# E, [2018-06-09T14:37:53.943201 #23986] ERROR -- : Got Foo::MyErrorTwo, sleeping 1
-# I, [2018-06-09T14:37:54.943928 #23986] INFO -- : Woke up after Foo::MyErrorTwo retrying again
-# E, [2018-06-09T14:37:54.944066 #23986] ERROR -- : Got Foo::MyError, sleeping 2
-# I, [2018-06-09T14:37:56.944181 #23986] INFO -- : Woke up after Foo::MyError retrying again
-# E, [2018-06-09T14:37:56.944346 #23986] ERROR -- : Got Foo::MyError, sleeping 4
-# I, [2018-06-09T14:38:00.947363 #23986] INFO -- : Woke up after Foo::MyError retrying again
+# E, [2018-11-08T10:17:16.199572 #33699] ERROR -- : Got Foo::MyError, sleeping 0.5672605987514756
+# I, [2018-11-08T10:17:17.204727 #33699] INFO -- : Woke up after Foo::MyError retrying again
+# E, [2018-11-08T10:17:17.204903 #33699] ERROR -- : Got Foo::MyErrorTwo, sleeping 1.6799593245880358
+# I, [2018-11-08T10:17:19.205967 #33699] INFO -- : Woke up after Foo::MyErrorTwo retrying again
+# E, [2018-11-08T10:17:19.206074 #33699] ERROR -- : Got Foo::MyErrorTwo, sleeping 3.732148747396218
+# I, [2018-11-08T10:17:23.206237 #33699] INFO -- : Woke up after Foo::MyErrorTwo retrying again
# => true
```
## Development