AnyEvent-MultiDownload
view release on metacpan or search on metacpan
lib/AnyEvent/MultiDownload.pm view on Meta::CPAN
return 1;
},
sub {
my (undef, $hdr) = @_;
undef $ev;
my $status = $hdr->{Status};
# on_body æ£å¸¸çä¸è½½
return if ( $hdr->{OrigStatus} and $hdr->{OrigStatus} == 200 ) or $hdr->{Status} == 200 or $hdr->{Status} == 416;
if ( ($status == 500 or $status == 503 or $status =~ /^59/) and $retry < $self->max_retries ) {
my $w; $w = AE::timer( $self->retry_interval, 0, sub {
$first_task->{pos} = $first_task->{ofs}; # é䏿¬åæ¶è¦ seek åé¶
$first_task->{size} = 0;
$first_task->{ctx} = undef;
$self->first_request(++$retry);
undef $w;
});
AE::log debug => "å°å $url çå 0 ä¸è½½åºé, éè¯";
return;
}
lib/AnyEvent/MultiDownload.pm view on Meta::CPAN
# 妿æå¯è½è¿è¿æ¥ä¸çååº, å°±éè¦éè¯, ç´å°è¾¾å°éè¯, 妿ä¸å¯è½è¿æ¥çååº, å°±ç´æ¥å¿«éçéåº
return $self->cv->send(($error, $hdr))
if $status !~ /^(59.|503|500|502|200|206|)$/ or $retry > $self->max_retries;
$self->retry($task, $retry);
}
};
sub retry {
my ($self, $task, $retry) = @_;
my $w;$w = AE::timer( $self->retry_interval, 0, sub {
$task->{pos} = $task->{ofs}; # é䏿¬åæ¶è¦ seek åé¶
$task->{size} = 0;
$task->{ctx} = undef;
$self->fetch_block( $task, ++$retry );
undef $w;
});
}
sub split_range {
my $self = shift;
( run in 1.044 second using v1.01-cache-2.11-cpan-49f99fa48dc )