Предложение о том, как повторить 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
}

0 ответов

Другие вопросы по тегам