设置重试次数
编辑设置重试次数编辑
默认情况下,客户端将重试 n
次,其中 n = 集群中的节点数
。仅当操作导致“硬”异常时才会执行重试:连接拒绝、连接超时、DNS 查询超时等。4xx 和 5xx 错误不被视为可重试事件,因为节点返回的是操作响应。
如果您想禁用重试或更改重试次数,可以使用 setRetries()
方法
$client = ClientBuilder::create() ->setRetries(2) ->build();
当客户端用尽所有重试次数时,它将抛出最后收到的异常。例如,如果您有十个活动节点,并且 setRetries(5)
,则客户端最多尝试执行该命令五次。如果所有五个节点都导致连接超时(例如),则客户端将抛出 NoNodeAvailableException
。
use Elastic\Transport\Exception\NoNodeAvailableException; $client = ClientBuilder::create() ->build(); try { $reponse = $client->info(); } catch (NoNodeAvailableException $e) { printf("No nodes alive: %s", $e->getMessage()); }