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-Retry

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 <perlancar@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2020 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.