Algorithm-Backoff-RetryTimeouts
view release on metacpan or search on metacpan
a sane set of defaults as a good baseline for most kinds of retry
operations.
A combination of features solves for most problems that would arise
from retry operations:
* Maximum attempts - Forces the algorithm to give up if repeated
attempts don't yield success.
* Maximum duration - Forces the algorithm to give up if no successes
happen within a certain time frame.
* Exponential backoff - A sqrt(2) exponential delay keeps single
retries from waiting too long, while spreading out repeated retries
that may fail too quickly and run out of max attempts. This also
decreases the congestion that happens with repeated attempts.
* Jitter - Adding random jitter to the retry delays solves for the
Thundering Herd problem.
* Adjustable timeouts - Providing an adjustable timeout after each
lib/Algorithm/Backoff/RetryTimeouts.pm view on Meta::CPAN
#pod =over
#pod
#pod =item *
#pod
#pod B<Maximum attempts> - Forces the algorithm to give up if repeated attempts don't yield
#pod success.
#pod
#pod =item *
#pod
#pod B<Maximum duration> - Forces the algorithm to give up if no successes happen within a
#pod certain time frame.
#pod
#pod =item *
#pod
#pod B<Exponential backoff> - A C<sqrt(2)> exponential delay keeps single retries from waiting
#pod too long, while spreading out repeated retries that may fail too quickly and run out of
#pod max attempts. This also decreases the congestion that happens with repeated attempts.
#pod
#pod =item *
#pod
#pod B<Jitter> - Adding random jitter to the retry delays solves for the Thundering Herd
lib/Algorithm/Backoff/RetryTimeouts.pm view on Meta::CPAN
=over
=item *
B<Maximum attempts> - Forces the algorithm to give up if repeated attempts don't yield
success.
=item *
B<Maximum duration> - Forces the algorithm to give up if no successes happen within a
certain time frame.
=item *
B<Exponential backoff> - A C<sqrt(2)> exponential delay keeps single retries from waiting
too long, while spreading out repeated retries that may fail too quickly and run out of
max attempts. This also decreases the congestion that happens with repeated attempts.
=item *
B<Jitter> - Adding random jitter to the retry delays solves for the Thundering Herd
( run in 2.377 seconds using v1.01-cache-2.11-cpan-df04353d9ac )