in lib/Search/Elasticsearch/Role/CxnPool/Static/NoPing.pm [29:50]
sub next_cxn {
#===================================
my $self = shift;
my $cxns = $self->cxns;
my $total = @$cxns;
my $dead = $self->_dead_cxns;
while ( $total-- ) {
my $cxn = $cxns->[ $self->next_cxn_num ];
return $cxn
if $cxn->is_live
|| $cxn->next_ping < time();
push @$dead, $cxn unless grep { $_ eq $cxn } @$dead;
}
if ( @$dead and $self->retries <= $self->max_retries ) {
$_->force_ping for @$dead;
return shift @$dead;
}
throw( "NoNodes", "No nodes are available: [" . $self->cxns_str . ']' );
}