Предложение о том, как повторить API в течение определенного промежутка времени - PullRequest
0 голосов
/ 16 мая 2019

API A вызывает API B, который, в свою очередь, вызывает API C. API A установил таймаут сокета в 15 секунд.API C вернет ответ в течение 15 секунд.Но я вижу, что иногда C закрывает сокет в течение 100 мс.Я хочу, чтобы API B повторил API C в случае истечения времени ожидания сокета в течение 15 секунд.API C может быть повторен любое количество раз в течение 15 секунд.Но если есть ответ, он должен быть возвращен A и не должен быть потерян.Есть ли способ сделать это в Java?

Я попытался с помощью пружинного retrytemplate, но с помощью этого я могу либо повторить указанное количество раз, либо повторить попытку через указанный интервал времени.Оба не соответствуют моим требованиям

@Retryable(value = {TypeOneException.class, TypeTwoException.class}, maxAttempts = 4, backoff = @Backoff(2000))

public String retryWhenException() throws TypeOneException, TypeTwoException { 
//call API C
}

...