Можно ли с помощью Spring Retry передать значение отката в качестве параметра функции? - PullRequest
1 голос
/ 29 октября 2019

В настоящее время я использую следующую аннотацию для управления параметрами отката и повтора.

@Retryable(value = { RemoteCallException.class },
            maxAttemptsExpression = "{@Properties.getRetries()}",
            backoff = @Backoff(delayExpression = "{@Properties.getBackoff()}"))

Однако в моем коде много разных вызовов Rest, и я хотел бы, чтобы вызывающая функция моглауказывать откат во время выполнения вместо того, чтобы ограничиваться указанием во время инициализации. Это возможно? Я пытаюсь избежать оператора сна в функции @Recover, поскольку хочу использовать откат, встроенный в Spring Retry API.

1 Ответ

2 голосов
/ 29 октября 2019

В настоящее время это невозможно;выражение вычисляется только один раз, во время инициализации.

По совпадению, я открыл для этого запрос новой функции несколько дней назад.

Вы можете сделать это с помощью пользовательскогополитика повторных попыток подключается к пользовательскому перехватчику и передается в @Retry через свойство interceptor.

См. мой SO-ответ, связанный в этом выпуске , для более подробной информации о том, как это сделатьэто.

...