SimpleClientHttpRequestFactory vs HttpComponentsClientHttpRequestFactory für die Http-Request-timeout mit RestTemplate?

Arbeite ich an einem Projekt, in dem ich brauche, um eine HTTP-URL-Aufruf zu meinem server, auf dem Restful-Dienst, die zurück die Antwort als JSON String.

Unten ist mein main-code, der mit der Zukunft und callables:

public class TimeoutThreadExample {

    private ExecutorService executor = Executors.newFixedThreadPool(10);
    private RestTemplate restTemplate = new RestTemplate();

    public String getData() {
        Future<String> future = executor.submit(new Task(restTemplate));
        String response = null;

        try {
            response = future.get(500, TimeUnit.MILLISECONDS);
        } catch (TimeoutException e) {
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }

        return response;
    }
}

Unten ist mein Task Klasse implementiert die Callable - Schnittstelle und verwendet die RestTemplate:

class Task implements Callable<String> {

    private RestTemplate restTemplate;

    public Task(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    public String call() throws Exception {

        String url = "some_url";
        String response = restTemplate.getForObject(url, String.class);

        return response;
    }
}

Anweisung Problem:

Wie man oben sehen kann, bin ich mit Standard-Art der Ausführung die URL mit RestTemplate die nicht mit jeder Http-Anforderung timeout, so dass heißt, intern ist es mit -1 als read und connection timeout.

Nun, was ich Suche zu tun ist, ich möchte die Einrichtung Http-Request-timeout mit RestTemplate in meinem obigen code effizient. Und ich bin nicht sicher, welche Klasse muss ich dafür verwende, kann ich sehen HttpComponentsClientHttpRequestFactory und SimpleClientHttpRequestFactory also nicht sicher, welchen muss ich verwenden?

Einem einfachen Beispiel auf basis meiner obigen code wird mir helfen, besser zu verstehen, wie der Http-Request timeout mit RestTemplate.

Und auch nicht, meine Http-Request-timeout-Wert sollte sein weniger als die Zukunft timeout-Wert?

  • HttpComponentsClientHttpRequestFactory vs SimpleClientHttpRequestFactory. Die man zu verwenden?
  • Hat meine Http-Request-timeout-Wert sollte sein weniger als die Zukunft timeout-Wert?

InformationsquelleAutor AKIWEB | 2014-09-06

Schreibe einen Kommentar