Предложение о том, как повторить API в течение определенного промежутка времени
API A вызывает API B, который, в свою очередь, вызывает API C. API A установил время ожидания сокета в 15 секунд. API C вернет ответ в течение 15 секунд. Но я вижу, что иногда C закрывает сокет в течение 100 мс. Я хочу, чтобы API B повторил API C в случае истечения времени ожидания сокета в течение 15 секунд. API C может быть повторен любое количество раз в течение 15 секунд. Но если есть ответ, он должен быть возвращен A и не должен быть потерян. Есть ли способ сделать это в Java?
Я попытался использовать пружинный шаблон, но с помощью этого я могу либо повторить указанное количество раз, либо повторить попытку через указанный интервал времени. Оба не соответствуют моему требованию
@Retryable(value = {TypeOneException.class, TypeTwoException.class}, maxAttempts = 4, backoff = @Backoff(2000))
public String retryWhenException() throws TypeOneException, TypeTwoException {
//call API C
}