in lib/Search/Elasticsearch/CxnPool/Async/Sniff.pm [33:64]
sub next_cxn {
#===================================
my ( $self, $no_sniff ) = @_;
return $self->sniff->then( sub { $self->next_cxn('no_sniff') } )
if $self->next_sniff <= time() && !$no_sniff;
my $cxns = $self->cxns;
my $total = @$cxns;
my $cxn;
while ( 0 < $total-- ) {
$cxn = $cxns->[ $self->next_cxn_num ];
last if $cxn->is_live;
undef $cxn;
}
my $deferred = deferred;
if ($cxn) {
$deferred->resolve($cxn);
}
else {
$deferred->reject(
new_error(
"NoNodes",
"No nodes are available: [" . $self->cxns_seeds_str . ']'
)
);
}
return $deferred->promise;
}