From d581501b8162723394585feb025babb656bc04ca Mon Sep 17 00:00:00 2001 From: erickson Date: Wed, 29 Aug 2007 16:11:11 +0000 Subject: [PATCH] added error countdown handling to the other added content services git-svn-id: svn://svn.open-ils.org/ILS/trunk@7739 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/src/perlmods/OpenILS/WWW/AddedContent.pm | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Open-ILS/src/perlmods/OpenILS/WWW/AddedContent.pm b/Open-ILS/src/perlmods/OpenILS/WWW/AddedContent.pm index 507c501b18..073f6ec217 100644 --- a/Open-ILS/src/perlmods/OpenILS/WWW/AddedContent.pm +++ b/Open-ILS/src/perlmods/OpenILS/WWW/AddedContent.pm @@ -104,12 +104,24 @@ sub handler { } catch Error with { my $err = shift; $logger->error("added content handler failed: $method($key) => $err"); + decr_error_countdown(); }; return Apache2::Const::NOT_FOUND if $err or !$success; return Apache2::Const::OK; } +sub decr_error_countdown { + $error_countdown--; + if($error_countdown < 1) { + $logger->warn("added content error count exhausted. Disabling lookups for $error_retry_timeout seconds"); + disable_lookups(); + } +} + +sub reset_error_countdown { + $error_countdown = $max_errors; +} # generic GET call @@ -119,6 +131,7 @@ sub get_url { my $agent = LWP::UserAgent->new(timeout => $net_timeout); my $res = $agent->get($url); die "added content request failed: " . $res->status_line ."\n" unless $res->is_success; + reset_error_countdown(); return $res->content; } @@ -181,18 +194,14 @@ sub fetch_jacket { if( $err or $res->code == 500 ) { $logger->warn("added content jacket fetch failed (retries remaining = $error_countdown) " . (($res) ? $res->status_line : "$err")); - $error_countdown--; - if($error_countdown < 1) { - $logger->warn("added content error count exhausted. Disabling lookups for $error_retry_timeout seconds"); - disable_lookups(); - } + decr_error_countdown(); return Apache2::Const::NOT_FOUND; } return Apache2::Const::NOT_FOUND unless $res->code == 200; # ignore old errors after a successful lookup - $error_countdown = $max_errors if $error_countdown < $max_errors; + reset_error_countdown(); my $c_type = $res->header('Content-type'); my $binary_img = $res->content; -- 2.11.0