TGViewer
Java Portal | Программирование Java Portal | Программирование @java_iibrary · 11.6K subscribers
Post #2150 2.12K
Spring Boot: можно использовать @Retryable, чтобы переживать нестабильность внешних сервисов.

@Service
public class ExtService {

@Retryable(
value = { HttpServerErrorException.class, ResourceAccessException.class },
maxAttempts = 3,
backoff = @Backoff(delay = 2000, multiplier = 2)
)
public ExtServiceResponse process(ExtServiceRequest request) {
// Call external payment gateway
return restTemplate.postForObject("https://ext-gateway/api/service", request,
ExtServiceResponse.class);
}

@Recover
public ExtServiceResponse recover(Exception e, ExtServiceRequest request) {
// Fallback logic after retries are exhausted
log.error("Failed after retries: {}", e.getMessage());
return new ExtServiceResponse("FAILED");
}
}


Что это делает:

▪️Делает 3 ретрая, если вылетают указанные исключения.
▪️Стартует с задержки 2 секунды и удваивает ее на каждой попытке (экспоненциальный backoff).
▪️Если все попытки провалились, вызывает recover().

👉 Java Portal
  • 👍 11
  • 🔥 2
More from @java_iibrary
  1. Sep 26, 2026Java: используйте Deque вместо Stack для работы по принципу LIFO («последним пришёл — перв…
  2. Sep 25, 2026Каждый Java-разработчик использует HashMap. Но задумывались ли вы… Почему его ёмкость всег…
  3. Sep 25, 2026Бесплатные ресурсы для изучения Java Конспект Effective Java — HugoMatilla/Effective-JAVA-…
  4. Sep 24, 2026Многие разработчики используют Java каждый день. Но мало кто знает, почему он стал одним и…
  5. Sep 24, 2026Java-разработчики, в чём разница между volatile и synchronized? Многие используют их. Но в…
  6. Sep 23, 2026Готовимся к System Design интервью уровня Middle и Senior Полезный конспект по проектирова…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →