Runs a code block, and retries it when an exception occurs.
It's configured using optional parameters :tries
, :on
and :sleep
.
Should the number of retries be reached without success, the last exception will be raised.
Add this line to your application's Gemfile:
gem 'retrying'
And then execute:
$ bundle
Or install it yourself as:
$ gem install retrying
Open an URL, try up to three times retrying when an OpenURI::HTTPError
occurs.
require "retrying"
require "open-uri"
include Retrying
retrying(:tries => 3, :on => OpenURI::HTTPError, :sleep => 0.5) do
xml = open("http://example.com/test.xml").read
end
Do something, try up to five times for either ArgumentError
or
TimeoutError
exceptions.
retrying(:tries => 5, :on => [ArgumentError, TimeoutError]) do
# some crazy code
end
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request