Code: Select all
PoolingAsyncClientConnectionManager connectionManager = PoolingAsyncClientConnectionManagerBuilder.create()
.setTlsStrategy(ClientTlsStrategyBuilder.create()
.setSslContext(SSLContexts.createSystemDefault())
.setTlsVersions(TLS.V_1_3)
.build())
.setPoolConcurrencyPolicy(PoolConcurrencyPolicy.STRICT)
.setConnPoolPolicy(PoolReusePolicy.LIFO)
.setDefaultConnectionConfig(ConnectionConfig.custom()
.setSocketTimeout(Timeout.ofMilliseconds(10000))
.setConnectTimeout(Timeout.ofMilliseconds(10000))
.setTimeToLive(TimeValue.ofMilliseconds(10000))
.build())
.setDefaultTlsConfig(TlsConfig.custom()
.setVersionPolicy(HttpVersionPolicy.NEGOTIATE)
.setHandshakeTimeout(Timeout.ofMinutes(1))
.build())
.build();
connectionManager.setDefaultMaxPerRoute(100);
connectionManager.setMaxTotal(100);
CloseableHttpAsyncClient asyncclient = HttpAsyncClients.custom()
.setConnectionManager(connectionManager)
.setIOReactorConfig(IOReactorConfig.custom()
.setSoTimeout(Timeout.ofMilliseconds(10000))
.build())
.build();
asyncclient.start();
futures.add(asyncclient.execute(httpRequest, new FutureCallback() {
@Override
public void completed(SimpleHttpResponse response) {
long processingTime = System.currentTimeMillis() - startTime;
System.out.println("Request "+ requestId+" completed with status: "+response.getCode()+" processingTime: "+pr`enter code here`ocessingTime);
}
@Override
public void failed(Exception ex) {
}
@Override
public void cancelled() {
}
}));
< /code>
Ausgabe: < /p>
Request 33 completed with status: 200 processingTime: 2181
Request 29 completed with status: 200 processingTime: 2193
Request 551 completed with status: 200 processingTime: 9175
Request 935 completed with status: 200 processingTime: 14286
Request 1006 completed with status: 200 processingTime: 14284
Request 1122 completed with status: 200 processingTime: 16330
Request 1076 completed with status: 200 processingTime: 16332
Request 1084 completed with status: 200 processingTime: 16333