I am always watching out for chunks of code that I seem to reuse in every new project and the “tries” pattern is definitely one of them. So finally I found some time to wrap it up into a gem and even come up with a nifty tagline:
Solidify your code and retry on petty exceptions
So what does it do? It basically lets you wrap some code with a
try block to retry it a number of times when an exception is raised:
You can even define one or more exceptions that should be retried (all other ones will be ignored in that case):
Or define a delay that should be waited for before each retry:
Perfect for implementing a poor man’s API throttling!
I want it!
to your Gemfile and start trying!
If you find any bugs or would like to see more features, file an issue or open a pull request in the project on Github!
Now, I have to admit that I didn’t come up with the idea myself. I found the snippet years ago and have been using and improving it ever since.
Neither do I remember where I found it nor who wrote it. I tried googling, without success. So if you are or know the original author of this snippet, please let me know in the comments and I’ll add your name to it!