任何人都可以帮助理解AWS SDK中`needsConnectionLeftOpen`方法的使用吗?

问题描述 投票:0回答:1

我正在使用 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);
amazon-web-services aws-sdk aws-appsync aws-java-sdk
1个回答
0
投票

由任何标记为

needsConnectionLeftOpen
的响应处理程序创建的 HTTP 连接不受
connectionMaxIdleMillis
的影响,因为您已有效地将连接标记为自我管理。您已确认不希望库处理连接并且您将自行关闭它。

connectionMaxIdleMillis
参数仅适用于未保持打开状态、未由响应处理程序使用以及连接池中空闲的连接。

它不会影响通过

needsConnectionLeftOpen
设置保持打开的连接。

文档中详细介绍了

needsConnectionLeftOpen
的典型用法:

例如,如果此响应处理程序返回的对象手动管理来自HTTP连接的数据流,并且没有在handle(HttpResponse)方法中读取连接中的所有数据,则可以使用此方法来防止底层连接被过早关闭。

© www.soinside.com 2019 - 2024. All rights reserved.