设置重试

编辑

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