NAME
App::SimpleScan::Plugin::Retry - implement retry pragma/command line option
VERSION
This document describes App::SimpleScan::Plugin::Retry version 1.00
SYNOPSIS
simple_scan --retry 6
or in a simple_scan input file:
%%retry 6
Both of these would retry fetches up to 6 times, pausing an increasingly-long time between each try. If all attempts fail, the failure reported with the last fetch is reflected back to the test program; if at any point the fetch succeeds, further retry attempts are abandoned.
DESCRIPTION
App::SimpleScan::Plugin::Retry
allows simple_scan
to use the retry
function implemented by the WWW::Mechanize::Pluggable
retry plugin.
This allows you to retry a transaction multiple times; it checks $mech-
success> to see if the transaction was successful.
If you need more sophisticated retry testing, you're better off scripting this yourself using WWW::Mechanize::Pluggable
and WWW::Mechanize::Plugin::Retry
. One way is to use the %%retry
pragma in input to simple_scan --gen
to generate skeleton code, and then replace the call to retry
to retry_if
with the appropriate status check subroutine (see WWW::Mechanize::Pluggable::Retry
for more details).
INTERFACE
options
Options supported by this plugin: --retry
, with one argument, the retry count.
pragmas
Pragmas supported by this plugin: %%retry
, same arguments as --retry.
retry
Setter/getter for the current retry count. Used by both the pragma and the command-line option to store the argument value.
retry_pragma Implements the actual code: stacks a call to mech-
retry> on the outgoing code stream, or a call to fail
if the argument is not a number.
validate_options
Generates a virtual %%retry
pragma for the value given on the command line.
OPTIONS
--retry
Allows you to specify a global retry count for the input file to be processed. If the input file contains %%retry
pragmas, the count will be reset as these pragmas are encountered.
PRAGMAS
%%retry
Set the retry count immediately to the new count specified as the argument.
%%retry 3
http://unsteady.org/ /.../ Y Look for expected text
%%retry 0
http://steady.org/ /.../ Y Same text
A retry count of zero means that the fetch will not be retried.
DIAGNOSTICS
"retry count '$args' is not a number
Issued by the generated test code if Perl can't parse the retry count (either from a pragma or the command line) as a valid number.
CONFIGURATION AND ENVIRONMENT
App::SimpleScan::Plugin::Retry requires no configuration files or environment variables.
DEPENDENCIES
App::SimpleScan, WWW::Mechanize::Pluggable::Retry.
INCOMPATIBILITIES
None reported.
BUGS AND LIMITATIONS
This only retries fetch failures; a more flexible means of testing "did it work?" is probably in order.
Please report any bugs or feature requests to bug-app-simplescan-plugin-retry@rt.cpan.org
, or through the web interface at http://rt.cpan.org.
AUTHOR
Joe McMahon <mcmahon@cpan.org >
LICENCE AND COPYRIGHT
Copyright (c) 2005, 2006 Yahoo! and Joe McMahon <mcmahon@cpan.org >
. All rights reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.
DISCLAIMER OF WARRANTY
BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE SOFTWARE, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE SOFTWARE "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE IS WITH YOU. SHOULD THE SOFTWARE PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR, OR CORRECTION.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE SOFTWARE AS PERMITTED BY THE ABOVE LICENCE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE SOFTWARE TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.