Search::Elasticsearch::Role::CxnPool(3p)

NAME
Search::Elasticsearch::Role::CxnPool - Provides common functionality to the CxnPool implementations

VERSION
version 6.00

DESCRIPTION
See the CxnPool implementations:

•   Search::Elasticsearch::CxnPool::Static

•   Search::Elasticsearch::CxnPool::Sniff

•   Search::Elasticsearch::CxnPool::Static::NoPing

CONFIGURATION
These configuration options should not be set by the user but are documented here for completeness.

  "randomize_cxns"
By default, the order of cxns passed to "set_cxns()" is randomized before they are stored. Set "randomize_cxns" to a false value to disable.

METHODS

  cxn_factory()
    $factory = $cxn_pool->cxn_factory

Returns the Search::Elasticsearch::Cxn::Factory object for creating a new $cxn instance.

  logger()
    $logger = $cxn_pool->logger

Returns the Search::Elasticsearch::Role::Logger-based object, which defaults to Search::Elasticsearch::Logger::LogAny.

  serializer()
    $serializer = $cxn_pool->serializer

Returns the Search::Elasticsearch::Role::Serializer-based object, which defaults to Search::Elasticsearch::Serializer::JSON.

  current_cxn_num()
    $num = $cxn_pool->current_cxn_num

Returns the current cxn number, which is an offset into the array of cxns set by "set_cxns()".

  cxns()
    \@cxns = $cxn_pool->cxns;

Returns the current list of Search::Elasticsearch::Role::Cxn-based cxn objects as set by "set_cxns()".

  seed_nodes()
    \@seed_nodes = $cxn_pool->seed_nodes

Returns the list of "nodes" originally specified when calling "new()" in Search::Elasticsearch.

  next_cxn_num()
    $num = $cxn_pool->next_cxn_num;

Returns the number of the next connection, in round-robin fashion. Updates the "current_cxn_num()".

  set_cxns()
    $cxn_pool->set_cxns(@nodes);

Takes a list of nodes, converts them into Search::Elasticsearch::Role::Cxn-based objects and makes them accessible via "cxns()".

  request_ok()
    $cxn_pool->request_ok($cxn);

Called when a request by the specified $cxn object has completed successfully. Marks the $cxn as live.

  request_failed()
    $should_retry = $cxn_pool->request_failed($cxn,$error);

Called when a request by the specified $cxn object has failed. Returns 1 if the request should be retried or 0 if it shouldn't.

  should_retry()
    $bool = $cxn_pool->should_retry($error);

Examines the error to decide whether the request should be retried or not. By default, only "Search::Elasticsearch::Error::Cxn" in Search::Elasticsearch::Error errors are retried.

  should_mark_dead()
    $bool = $cxn_pool->should_mark_dead($error);

Examines the error to decide whether the $cxn should be marked as dead or not. By default, only "Search::Elasticsearch::Error::Cxn" in Search::Elasticsearch::Error errors cause a $cxn to be marked as dead.

  cxns_str()
    $str = $cxn_pool->cxns_str

Returns all "cxns()" as a string for logging purposes.

  cxns_seeds_str()
    $str = $cxn_pool->cxns_seeeds_str

Returns all "cxns()" and "seed_nodes()" as a string for logging purposes.

  retries()
    $retries = $cxn_pool->retries

The number of times the current request has been retried.

  reset_retries()
    $cxn_pool->reset_retries;

Called at the start of a new request to reset the retries count.

AUTHOR
Clinton Gormley <drtech@cpan.org>

COPYRIGHT AND LICENSE
This software is Copyright (c) 2017 by Elasticsearch BV.

This is free software, licensed under:

  The Apache License, Version 2.0, January 2004