lib/upperkut/util.rb in upperkut-0.8.0 vs lib/upperkut/util.rb in upperkut-0.8.1

- old
+ new

@@ -34,7 +34,24 @@ def decode_json_items(items) items.each_with_object([]) do |item, memo| memo << Item.from_json(item) if item end end + + def retry_block(retries_limit = 3, base_sleep = 2) + retries = 0 + + begin + yield + rescue StandardError => err + if retries < retries_limit + retries += 1 + sleep_time = base_sleep**retries + Kernel.sleep(sleep_time) + retry + end + + raise err + end + end end end