Dans Jaxrs (WebClient par exemple), nous pouvons définir un timeout de connexion et un timeout de lecture.Jaxrs possibilité de définir un délai d'attente global (se connecter + lire)
ClientConfiguration c = WebClient.getConfig(client);
HTTPConduit http = c.getHttpConduit();
HTTPClientPolicy httpClientPolicy = new HTTPClientPolicy();
httpClientPolicy.setConnectionTimeout(timeout);
httpClientPolicy.setReceiveTimeout(timeout);
httpClientPolicy.setAllowChunking(false);
http.setClient(httpClientPolicy);
Je voudrais définir un délai qui inclut à la fois, je ne me soucie pas vraiment combien de temps est consacré à la connexion ou à recevoir, mon exigence est d'obtenir une réponse en quelques secondes X ou tout simplement jeter la recherche .
Peut-être via un intercepteur ?, mais je ne sais pas si c'est faisable – cocorossello
J'ai passé en revue 'WebClient' javadoc et il Il n'est pas possible d'annuler une requête en cours, il n'est donc pas possible d'utiliser un intercepteur car il sera exécuté dans le même thread que la requête principale (et le thread principal est bloqué jusqu'à réponse/timeout). Vous devez créer un thread de surveillance supplémentaire avec un délai d'expiration et travailler de manière asynchrone, dans les deux cas: timeout ou réponse correcte. Considérez si cela vaut la peine ... – pedrofb