我在java中做库,库用于调用外部服务API。为此,我使用AsyncHttpClient
部分代码:
public CompletableFuture<Optional<TokensResponse>> clientCredentialsGrant(String clientId, String clientSecret, String deviceId, Optional<String> scope) {
AsyncHttpClient asyncHttpClient = asyncHttpClient();
BoundRequestBuilder requestBuilder = asyncHttpClient
.preparePost(host + "/oauth2/token")
.addFormParam("grant_type", "client_credentials")
.addFormParam("device_id", deviceId)
.addFormParam("client_id", clientId)
.addFormParam("client_secret", clientSecret);
if (scope.isPresent()) {
requestBuilder.addFormParam("scope", scope.get());
}
return runRequestWithTokenResponse(requestBuilder, asyncHttpClient);
}
如果某个项目正在使用这个库,我将运行例如 1000 个请求,即使它们会完成,我最终会挂起很多线程。到达请求后,我正在做:
asyncHttpClient.close();
我可以定义一些要使用的线程池吗?
通常,如果您为每个请求创建一个新客户端,AHC 通常会表现不佳,因为它会为每个请求创建新线程和连接池
这就是我实际上在做什么..
眼眸繁星
一只斗牛犬
相关分类