php - 设置elasticsearch php客户端的connect_timeout

标签 php curl elasticsearch guzzle

我想在我的 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/

相关文章:

php - 如何从命名空间 PHP 调用全局函数类

c++ - Linux c++ : getaddrinfo failed with EAI_AGAIN, curl 无法解析主机

java - Spring 启动 com.fasterxml.jackson.core.JsonParseException : Unrecognized token

elasticsearch - 在 gitlab-ci 中使用 elasticsearch

对嵌套对象数组的 Elasticsearch 查询

.net - 在 .NET Core 上使用 Elastic APM 进行分布式跟踪,非 HTTP

php - 如何在PHP错误验证期间将数据保留在表单中?

php - 如何在 Laravel 中使用补丁请求?

php - 使用php中的一个按钮将多个表单提交到同一操作页面

CURL命令行工具-从FTP服务器删除文件