0

我想知道在指定 http 客户端超时时使用的不同时间单位的意义是什么。连接超时以毫秒为单位,空闲超时以秒为单位,读取超时以毫秒为单位。

  1. vertx 是否使用不同的精度来确定应该触发超时的精度?

  2. 超时是如何触发的?

我正在使用https://vertx.io/docs/apidocs/io/vertx/core/http/HttpClientRequest.html

4

1 回答 1

0

一般来说,与 Vert.x 无关:
connection timeout< read timeout<idle timeout
更具体地说,检查连接是否空闲可能需要几十毫秒。因此,首先允许以毫秒为单位设置此值并不是最佳选择,因为这样可能会出现检查空闲连接的时间大于空闲超时的情况。

HttpClientRequest只提供一个超时。可能您的问题是关于WebClientOptions,这确实提供了不同的超时:
https ://vertx.io/docs/apidocs/io/vertx/ext/web/client/WebClientOptions.html

如果您对它的实际使用方式感兴趣,可以查看NetClientImpl源代码:

https://github.com/eclipse-vertx/vert.x/blob/master/src/main/java/io/vertx/core/net/impl/NetClientImpl.java#L103

于 2020-03-24T18:56:23.383 回答