Как вы можете интегрировать Spring Retry
с внешними вызовами с AsyncRestTemplate
? Если это невозможно, есть ли другая инфраструктура, которая его поддерживает?Как интегрировать Spring Retry с AsyncRestTemplate
Мой случай использования:
public void doSomething() throws ExecutionException, InterruptedException {
ListenableFuture<ResponseEntity<String>> future = asyncRestTemplate.getForEntity("http://localhost/foo", String.class);
// do some tasks here
ResponseEntity<String> stringResponseEntity = future.get(); // <-- How do you retry just this call?
}
Как вы повторить этот future.get()
вызов? Если внешняя служба возвращает 404, я хочу избежать повторного вызова этих задач и просто повторить внешний вызов? Я не могу просто обернуть future.get()
с помощью retryTemplate.execute()
, потому что он фактически не будет выполнять другой вызов внешней службы.
Выполняя это, я выполнял вызовы между операцией шаблона и получал также, верно? Есть ли способ повторить только внешний вызов и использовать методы между асинхронным запуском? (т. е. операция шаблона и get * could * могут быть перенесены в начало метода, но, выполняя 'future.get()', текущий поток будет заблокирован, который побеждает цель использования 'AsyncRestTemplate' для внешнего вызова. – Glide
См. Мое редактирование одним способом, чтобы получить новое «Будущее». –