NAME

LWP::UserAgent::ExponentialBackoff - LWP::UserAgent extension that retries errors with exponential backoff

SYNOPSIS

  my @failCodes    = qw(500 503);
  my %failCodesMap = map { $_ => $_ } @failCodes;

  %options = (
  	  tolerance    => .20,
	  retryCount   => 5,
	  minBackoff   => 3,
	  maxBackoff   => 120,
	  deltaBackoff => 3,
	  failCodes    => \%failCodesMap
  );

  my $ua = LWP::UserAgent::ExponentialBackoff->new(%options);
  my $request   = HTTP::Request->new( 'GET', $uri );
  my $response  = $ua->request($request);

DESCRIPTION

LWP::UserAgent::ExponentialBackoff is a LWP::UserAgent extention. It retries requests on error using an exponential backoff algorthim.

CONSTRUCTOR METHODS

The following constructor methods are available:

$ua = LWP::UserAgent::ExponentialBackoff->new( %options )

This method constructs a new LWP::UserAgent::ExponentialBackoff object and returns it. Key/value pair arguments may be provided to set up the initial state.

KEY                     DEFAULT
-----------             --------------------
sum                     undef
retryCount              3
minBackoff              3
maxBackoff              90
tolerance               .20
deltaBackoff            3
failCodes               { map { $_ => $_ } qw(408 500 502 503 504) }	

See LWP::UserAgent for additional key/value pair arguments that may be provided.

METHODS

This module inherits all of LWP::UserAgent's methods, and adds the following.

    TBD

IMPLEMENTATION

This class works by overriding LWP::UserAgent's Csimple_request method with an exponential backoff algortihm.

SEE ALSO

LWP, LWP::UserAgent, LWP::UserAgent::Determined

AUTHOR

Michael Marrotte <lt>marrotte at cpan dot org<gt>

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

2 POD Errors

The following errors were encountered while parsing the POD:

Around line 193:

You forgot a '=back' before '=head1'

Around line 202:

You forgot a '=back' before '=head1'