NAME
Retry::Backoff - Retry a piece of code, with backoff strategies
VERSION
This document describes version 0.001 of Retry::Backoff (from Perl distribution Retry-Backoff), released on 2019-06-18.
SYNOPSIS
use Retry::Backoff 'retry';
# by default, will use Algorithm::Backoff::Exponential with these parameters:
# - initial_delay = 1 (1 second)
# - max_delay = 300 (5 minutes)
# - max_attempts = 10
retry { ... };
# pick backoff strategy (see corresponding Algorithm::Backoff::* for
# list of parameters)
retry { ... } strategy=>'Constant', delay=>1, max_attempts=>10;
#
DESCRIPTION
This module provides "retry" to retry a piece of code if it dies. Several backoff (delay between retries) strategies are available from Algorithm::Backoff
:: modules.
FUNCTIONS
retry
Usage:
retry { attempt-code... } %args;
Retry the attempt-code if it dies. Known arguments:
strategy
String. Default is
Exponential
(withinitial_delay
=1,max_delay
=300, andmax_attempts
=10).on_success
Coderef. Will be called if attempt-code is deemed as successful.
on_failure
Coderef. Will be called if attempt-code is deemed to have failed.
retry_if
Coderef. If not specified, attempt-code is deemed to have failed if it dies. If this is specified, then the coderef will be called and if it returns true then the attempt-code is deemed to have failed.
Coderef will be passed:
\%h
containing these keys:
error action_retry attempt_result attempt_parameters
non_blocking
Boolean.
The rest of the arguments will be passed to the backoff strategy module (Algorithm::Backoff::*
).
HOMEPAGE
Please visit the project's homepage at https://metacpan.org/release/Retry-Backoff.
SOURCE
Source repository is at https://github.com/perlancar/perl-Retry-Backoff.
BUGS
Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=Retry-Backoff
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
SEE ALSO
Code is based on Action::Retry.
Other similar modules: Sub::Retry, Retry.
Backoff strategies are from Algorithm::Backoff::* modules.
AUTHOR
perlancar <perlancar@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2019 by perlancar@cpan.org.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.