我想在我的 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低)
(Limit connecting time with Guzzle HTTP PHP client)
我想我需要以某种方式将 CURLOPT_CONNECTTIMEOUT_MS 参数设置为我想要的值(2000 毫秒),但我没有看到任何通过 elasticsearch php 客户端传递它的好方法。
有人知道怎么做吗?
最佳答案
谢谢扎克,
我试过了,但它不起作用。
我调试了客户端以及参数从 guzzle 传递到 curl 句柄的方式。
我发现完成它的方法是将此参数传递给 Elasticsearch 客户端
$params['guzzleOptions']['curl.options'][CURLOPT_CONNECTTIMEOUT] = 2.0; // this applies 2 seconds connection_timeout
希望它有所帮助:)
尼夫
关于php - 设置elasticsearch php客户端的connect_timeout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25491110/