我想在我的elasticsearch php 客户端到我的elasticsearch 服务器之间配置一个小的超时。
我尝试将一些参数传递给 guzzle 客户端,但似乎这不起作用。
这是代码:
$params = array();
$params['hosts'] = $hosts;
$params['guzzleOptions']['connect_timeout'] = 2.0;
$params['guzzleOptions']['timeout'] = 2.0;
$this->elastica_obj = new Elasticsearch\Client($params);
我搜索了一下,发现问题可能是因为cURL层设置了超时(低于guzzle)
(限制 Guzzle HTTP PHP 客户端的连接时间 https://stackoverflow.com/questions/20847633/limit-connecting-time-with-guzzle-http-php-client)
我想我需要以某种方式将 CURLOPT_CONNECTTIMEOUT_MS 参数设置为我想要的值(2000ms),但我没有看到任何好的方法将其通过elasticsearch php客户端传递。
有人知道该怎么做吗?
Since elasticsearch/elasticsearch
v5.1.2,您也可以使用setConnectionParams()
适用于所有请求的方法
use GuzzleHttp\RequestOptions;
use Elasticsearch\ClientBuilder;
ClientBuilder::create()
->setConnectionParams([
'client' => [
RequestOptions::TIMEOUT => 10,
RequestOptions::CONNECT_TIMEOUT => 10,
],
])
->build();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)