NAME

AnyEvent::HTTP::LWP::UserAgent::Determined - a virtual browser that retries errors with AnyEvent

VERSION

version v0.05.1.06

SYNOPSIS

use strict;
use AnyEvent::HTTP::LWP::UserAgent::Determined;
my $browser = LWP::UserAgent::Determined->new;
my $response = $browser->get($url, headers... );
$browser->get_async($url, headers... )->cb(sub {
  my $response = shift->recv;
});

DESCRIPTION

LWP::UserAgent::Determined works just like LWP::UserAgent (and is based on it, by being a subclass of it), except that when you use it to get a web page but run into a possibly-temporary error (like a DNS lookup timeout), it'll wait a few seconds and retry a few times.

It also adds some methods for controlling exactly what errors are considered retry-worthy and how many times to wait and for how many seconds, but normally you needn't bother about these, as the default settings are relatively sane.

This class not only works like LWP::UserAgent::Determined but also AnyEvent::HTTP::LWP::UserAgent (and is based on them, by being a subclass of them),

METHODS

This module inherits all of LWP::UserAgent::Determined's methods and AnyEvent::HTTP::LWP::UserAgent's methods.

IMPLEMENTATION

This class works by overriding AnyEvent::HTTP::LWP::UserAgent's simple_request method with its own around-method that just loops. See the source of this module; it's straightforward with caution of asynchronous nature.

SEE ALSO

LWP, LWP::UserAgent, LWP::UserAgent::Determined, AnyEvent::HTTP, AnyEvent::HTTP::LWP::UserAgent

COPYRIGHT AND DISCLAIMER

Original copyright for LWP::UserAgent::Determined:

Copyright 2004, Sean M. Burke, all rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

This program is distributed in the hope that it will be useful, but without any warranty; without even the implied warranty of merchantability or fitness for a particular purpose.

AUTHOR

Yasutaka ATARASHI yakex@cpan.org

Original authors of LWP::UserAgent::Determined are as follows:

Originally created by Sean M. Burke, sburke@cpan.org

Currently maintained by Jesse Vincent jesse@fsck.com