in lib/Search/Elasticsearch/CxnPool/Static.pm [27:56]
sub next_cxn {
#===================================
my ($self) = @_;
my $cxns = $self->cxns;
my $total = @$cxns;
my $now = time();
my @skipped;
while ( $total-- ) {
my $cxn = $cxns->[ $self->next_cxn_num ];
return $cxn if $cxn->is_live;
if ( $cxn->next_ping < $now ) {
return $cxn if $cxn->pings_ok;
}
else {
push @skipped, $cxn;
}
}
for my $cxn (@skipped) {
return $cxn if $cxn->pings_ok;
}
$_->force_ping for @$cxns;
throw( "NoNodes", "No nodes are available: [" . $self->cxns_str . ']' );
}