NAME
   HTTP::Tiny::Plugin::Retry - Retry failed request

VERSION
   This document describes version 0.004 of HTTP::Tiny::Plugin::Retry (from
   Perl distribution HTTP-Tiny-Plugin-Retry), released on 2020-08-14.

SYNOPSIS
    use HTTP::Tiny::Plugin 'Retry' => {
        max_attempts => 3, # optional, default 3
        delay        => 2, # optional, default 2
        retry_if     => qr/^[45]/, # optional, default is only 5xx errors are retried
    };

    my $res  = HTTP::Tiny::Plugin->new->get("http://www.example.com/");

DESCRIPTION
   This plugin retries failed response. By default only retries 5xx
   failures, as 4xx are considered to be client's fault (but you can
   configure it with "retry_if").

CONFIGURATION
 max_attempts
   Int. Default 4.

 delay
   Float.

 retry_if
   Regex (or scalra), or arrayref, or coderef. If regex or scalar, then
   will be matched against response status. If array, then will be assumed
   to be status codes to trigger retry. If coderef, will be called with
   arguments: "($class, $response)" ($class is the plugin class name) and a
   true return value will trigger retry.

 strategy
   Algorithm::Backoff::* module name, without the prefix and with optional
   arguments (see "instantiate_class_with_optional_args" in
   Module::Load::Util), e.g. "Constant", "["Exponential" =>
   {initial_delay=>2, max_delay=>100}]",
   "Exponential=initial_delay,2,max_delay,100".

   If set, will use delay and maximum attempt values from specified
   Algorithm::Backoff backoff strategry instead of "max_attempts" and
   "delay".

ENVIRONMENT
 HTTP_TINY_PLUGIN_RETRY_MAX_ATTEMPTS
   Int.

 HTTP_TINY_PLUGIN_RETRY_DELAY
   Int.

HOMEPAGE
   Please visit the project's homepage at
   <https://metacpan.org/release/HTTP-Tiny-Plugin-Retry>.

SOURCE
   Source repository is at
   <https://github.com/perlancar/perl-HTTP-Tiny-Plugin-Retry>.

BUGS
   Please report any bugs or feature requests on the bugtracker website
   <https://rt.cpan.org/Public/Dist/Display.html?Name=HTTP-Tiny-Plugin-Retr
   y>

   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
   HTTP::Tiny::Plugin

   Equivalent plugin for LWP::UserAgent::Plugin:
   LWP::UserAgent::Plugin::Retry.

AUTHOR
   perlancar <[email protected]>

COPYRIGHT AND LICENSE
   This software is copyright (c) 2020 by [email protected].

   This is free software; you can redistribute it and/or modify it under
   the same terms as the Perl 5 programming language system itself.