Commit f988d539 authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

marudor: cache negative replies

parent ca372be9
Loading
Loading
Loading
Loading
+6 −2
Original line number Original line Diff line number Diff line
@@ -34,11 +34,13 @@ sub get_json_p {
	my $promise = Mojo::Promise->new;
	my $promise = Mojo::Promise->new;


	if ( my $content = $cache->thaw($url) ) {
	if ( my $content = $cache->thaw($url) ) {
		$self->{log}->debug("marudor->get_json_p($url): cached");
		if ( $content->{error} ) {
			return $promise->reject( $content->{error} );
		}
		return $promise->resolve($content);
		return $promise->resolve($content);
	}
	}


	$self->{log}->debug("get_json_p($url)");

	$self->{user_agent}->request_timeout(5)->get_p( $url => $self->{header} )
	$self->{user_agent}->request_timeout(5)->get_p( $url => $self->{header} )
	  ->then(
	  ->then(
		sub {
		sub {
@@ -48,6 +50,7 @@ sub get_json_p {
				$self->{log}->debug(
				$self->{log}->debug(
"marudor->get_json_p($url): HTTP $err->{code} $err->{message}"
"marudor->get_json_p($url): HTTP $err->{code} $err->{message}"
				);
				);
				$cache->freeze( $url, { error => $err->{message} } );
				$promise->reject(
				$promise->reject(
					"GET $url returned HTTP $err->{code} $err->{message}");
					"GET $url returned HTTP $err->{code} $err->{message}");
				return;
				return;
@@ -72,6 +75,7 @@ sub get_json_p {
		sub {
		sub {
			my ($err) = @_;
			my ($err) = @_;
			$self->{log}->debug("marudor->get_json_p($url): $err");
			$self->{log}->debug("marudor->get_json_p($url): $err");
			$cache->freeze( $url, { error => $err } );
			$promise->reject($err);
			$promise->reject($err);
			return;
			return;
		}
		}