超时配置
更新时间:
在网络不稳定或服务响应较慢的情况下,合理设置超时时间能够有效防止请求长时间挂起,以及避免因服务不可用而导致的长时间等待,提升系统稳定性和响应效率。本文为您介绍在使用Java(异步)SDK过程中如何配置超时时间。
配置方式
说明
超时时间配置优先级为:RequestConfiguration配置 -> ClientOverrideConfiguration配置 -> HttpClient配置 -> 默认值,优先级依次降低。
方式一:使用默认配置
默认连接超时时间为10000毫秒,响应超时时间为20000毫秒。
方式二:通过RequestConfiguration配置
darabonba.core.RequestConfiguration requestConfiguration = darabonba.core.RequestConfiguration.create()
.setConnectTimeout(java.time.Duration.ofMillis(10000))
.setResponseTimeout(java.time.Duration.ofMillis(15000));配置完成后,可以通过OpenAPI请求对象设置RequestConfiguration。例如,为SendSms配置连接超时时间和响应超时时间:
darabonba.core.RequestConfiguration requestConfiguration = darabonba.core.RequestConfiguration.create()
.setConnectTimeout(java.time.Duration.ofMillis(10000))
.setResponseTimeout(java.time.Duration.ofMillis(15000));
// SendSmsRequest为SendSms的请求对象,超时配置只对当前请求生效
SendSmsRequest sendSmsRequest = SendSmsRequest.builder()
.requestConfiguration(requestConfiguration)
.build();方式三:通过ClientOverrideConfiguration配置
darabonba.core.client.ClientOverrideConfiguration clientOverrideConfiguration = darabonba.core.client.ClientOverrideConfiguration.create()
.setConnectTimeout(Duration.ofMillis(10000))
.setResponseTimeout(Duration.ofMillis(15000));配置完成后,可以通过AsyncClient配置ClientOverrideConfiguration。
ClientOverrideConfiguration clientOverrideConfiguration = ClientOverrideConfiguration.create()
.setConnectTimeout(Duration.ofMillis(10000))
.setResponseTimeout(Duration.ofMillis(15000));
// 超时配置对所有通过该AsyncClient调用的请求都生效
AsyncClient client = AsyncClient.builder()
.credentialsProvider(credentialProvider) // 本示例省略credentialProvider实现过程...
.overrideConfiguration(clientOverrideConfiguration)
.build();方式四:通过HttpClient配置
// HttpClient Configuration
HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
.connectionTimeout(Duration.ofMillis(10000))
.responseTimeout(Duration.ofMillis(20000))
.build();配置完成后,可以通过AsyncClient配置HttpClient。
// HttpClient Configuration
HttpClient httpClient = new ApacheAsyncHttpClientBuilder()
.connectionTimeout(Duration.ofMillis(10000))
.responseTimeout(Duration.ofMillis(20000))
.build();
// 超时配置对所有通过该AsyncClient调用的请求都生效
AsyncClient client = AsyncClient.builder()
.httpClient(httpClient)
.credentialsProvider(credentialProvider) // 本示例省略credentialProvider实现过程...
.build();该文章对您有帮助吗?