设置重试
编辑设置重试
编辑默认情况下,客户端将重试 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()); }