public class Retrier<V>
This class implements a process of doing some action repeatedly synchronously until it is performed successfully.
You can set the number of attempts, the action to perform, the milliseconds to wait for, the definition of success,
the exceptions that are considered as a failed action, but not an unexpected exception in the action and also the
listener to manage the expected exceptions happened, just in case it is helpful.