Page 1 of 1

Ich habe die Zeitüberschreitung auf 10 Sekunden festgelegt, aber ich erhalte nach 10 Sekunden immer noch eine Antwort, o

Posted: 20 Feb 2025, 10:36
by Guest
Ich habe einen Server erstellt, der eine Warteschlange auf der serverseitigen Implementierung implementiert, wobei die Anforderungen absichtlich 11 Sekunden lang abgehalten werden, bevor eine Antwort gesendet wird. Zu den Testzwecken habe ich eine Client-Anwendung konfiguriert, um Anforderungen an diesen Server mit einem Zeitüberschreitungs 10-Sekunden zu stellen. -Side Timeout zu 10 Sekunden, ich erhalte immer noch Antworten für einige Anfragen nach dem 10-Sekunden-Timeout-Schwellenwert, obwohl der Server die Anfrage 11 Sekunden lang absichtlich hält. < /p>

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