当前位置: 首页 > 面试题库 >

设置elasticsearch php客户端的connect_timeout

卢知
2023-03-14
问题内容

我想在我的Elasticsearch php客户端到我的Elasticsearch服务器之间配置一个小的超时。

我试图将一些参数传递给耗时的客户端,但这似乎不起作用。这是代码

$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客户端的连接时间

我想我需要以某种方式将CURLOPT_CONNECTTIMEOUT_MS参数设置为我想要的值(2000毫秒),但我看不到任何通过Elasticsearch
php客户端传递它的好方法。

有人知道该怎么做吗?


问题答案:

谢谢Zack,我尝试了一下,但是没有用。

我调试了客户端以及参数从枪口传递到curl句柄的方式。

我找到的方法是将此参数传递给Elasticsearch客户端

$params['guzzleOptions']['curl.options'][CURLOPT_CONNECTTIMEOUT] = 2.0;  // this applies 2 seconds connection_timeout

希望它会有所帮助:)

尼夫



 类似资料:
  • 自定义成菜单 说明: 1)启用该功能后,直播客户端可以通过自定义菜单的方式加载用户自定义的网页,方便结合自身业务进行交互操作(客户端5.0.0以上版本支持) 问卷设置 说明: 1)在直播管理页面点击 “问卷设置”,启用该功能后,直播客户端可以通过接口请求的方式将用户问卷库中的问卷导入到客户端中使用 2)关于问卷设置的具体功能及使用方法,请参考:问卷接口开发指南 菜单设置 说明: 1)支持对客户端的

  • WebSocketClient 结构体指针上只有如下两个可设置的字段: Header 字段 用来设置自定义的 HTTP 头信息。 MaxConcurrentRequests 方法 该方法返回最大并发请求数。 SetMaxConcurrentRequests 方法 该方法用于设置最大并发请求数,当并发请求超过该设置之后,后面的请求将会排队等待。该设置默认值为 10。

  • TCPClient 除了包含上面的继承自 SocketClient 的设置以外,还有以下几个可以设置的字段: Linger 字段 用于设置当连接中仍有数据等待发送或接受时的 Close 方法的行为。 如果其值小于 0(默认),Close 方法立即返回,操作系统停止后台数据发送;如果其值等于 0,Close 立刻返回,操作系统丢弃任何未发送或未接收的数据;如果其值大于 0,Close 方法阻塞最多

  • TCPClient 和 UnixClient 这两个结构体包含 SocketClient 这个匿名字段,因此,SocketClient 上的字段和方法都会被继承。 ReadBuffer 字段 设置与连接相关的操作系统接收缓冲区的大小。当为 0 时,表示不进行设置,使用系统默认值。 WriteBuffer 字段 设置与连接相关的操作系统发送缓冲区的大小。当为 0 时,表示不进行设置,使用系统默认值。

  • FastHTTPClient 结构体指针上还定义了如下特殊字段: Client 字段 该字段是一个匿名字段,类型为 fasthttp.Client,你可以通过对它上面的字段进行设置来改变 FastHTTP 客户端的一些特殊设置。

  • HTTPClient 结构体指针上还定义了如下特殊字段: Transport 字段 该字段是一个匿名字段,类型为 http.Transport,你可以通过对它上面的字段进行设置来改变 HTTP 客户端的一些特殊设置。 MaxIdleConnsPerHost 字段 该字段其实是 Transport 结构体上的一个字段,它表示最多允许的空闲持久连接数。这里单独拿出来说是因为它的默认值也是 10,目的是