我正在使用 AWS SDK 来调用 appsync 终端节点。但是,我无法理解此javadoc中的needsConnectionLeftOpen的重要性:https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/http/HttpResponseHandler.html#needsConnectionLeftOpen--
这是否意味着,无论我在客户端配置中指定什么 connMaxIdleMillis,HTTP 连接都会关闭?
final ClientConfiguration clientConfiguration = new ClientConfiguration();
clientConfiguration.setMaxConnections(50);
clientConfiguration.setConnectionMaxIdleMillis(300000);
needsConnectionLeftOpen
的响应处理程序创建的 HTTP 连接不受 connectionMaxIdleMillis
的影响,因为您已有效地将连接标记为自我管理。您已确认不希望库处理连接并且您将自行关闭它。
connectionMaxIdleMillis
参数仅适用于未保持打开状态、未由响应处理程序使用以及连接池中空闲的连接。
它不会影响通过
needsConnectionLeftOpen
设置保持打开的连接。
文档中详细介绍了
needsConnectionLeftOpen
的典型用法:
例如,如果此响应处理程序返回的对象手动管理来自HTTP连接的数据流,并且没有在handle(HttpResponse)方法中读取连接中的所有数据,则可以使用此方法来防止底层连接被过早关闭。