Я не понимаю, как эффективно использовать AsyncRestTemplate
для совершения внешних вызовов службы. Для кода ниже:
class Foo {
public void doStuff() {
Future<ResponseEntity<String>> future1 = asyncRestTemplate.getForEntity(
url1, String.class);
String response1 = future1.get();
Future<ResponseEntity<String>> future2 = asyncRestTemplate.getForEntity(
url2, String.class);
String response2 = future2.get();
Future<ResponseEntity<String>> future3 = asyncRestTemplate.getForEntity(
url3, String.class);
String response3 = future3.get();
}
}
В идеале я хочу выполнить все 3 вызова одновременно и обрабатывать результаты, как только они будут выполнены. Однако каждый внешний вызов службы не выбирается до тех пор, пока get()
не будет вызван, а get()
будет заблокирован. Так разве это не побеждает цель AsyncRestTemplate
? Я мог бы также использовать RestTemplate
.
Итак, я не понимаю, как я могу заставить их работать одновременно?