Напишите production-ready ретраер 👇
📦 Задание
Реализуйте утилиту, которая повторяет операцию при временном сбое:
public <T> T executeWithRetry(Supplier<T> operation) {
// Ваша реализация
}📋 Требования
— Максимум N попыток.
— Экспоненциальная задержка: 100ms → 200ms → 400ms… с верхней границей (cap).
— Добавить jitter (случайный разброс), чтобы избежать «thundering herd» при массовых ретраях.
— Ретраить только временные ошибки, бизнес-ошибки пробрасывать сразу.
— Корректно обработать прерывание (InterruptedException + восстановление флага interrupt).
— После исчерпания попыток пробросить последнее исключение (с сохранением причины).
Ставьте → 🔥, если нравится формат. Если нет → 🌚
💬 Решения под спойлер. Сравним, какое будет лучше.
🐸Библиотека собеса по Java
#practise