Как мне получить доступ к текущей попытке повтора при использовании подхода @Retryable

Я использую подход на основе аннотаций - @Retryable, чтобы повторить попытку в приложении весенней загрузки.

@Retryable(value = {DataAccessException.class, JpaSystemException.class}, maxAttempts = Integer.MAX_VALUE, backoff = @Backoff(delay = 30000))

Что я хочу сделать, так это то, что каждый раз, когда он повторяет попытку, я хочу получить доступ к его текущей попытке повторения.

Я пробовал сделать это с помощью Java Reflection -

Retryable retryable = mth.getAnnotation(Retryable.class);

Но используя это, я не получаю текущую попытку повтора. Он просто дает детали, которые были добавлены к атрибуту @Retryable, например, value, maxAttempts, Backoff детали

Есть идеи по этому поводу? Помощь очень ценится.


person Saurabh Deshpande    schedule 31.10.2018    source источник


Ответы (1)


Вы не сможете получить доступ к шаблону, если не подключите свой собственный перехватчик и не предоставите его @Retryable в свойстве interceptor.

Однако вы можете получить доступ к счетчику в @Retryable методе, используя

int retry = RetrySynchronizationManager.getContext().getRetryCount();
person Gary Russell    schedule 31.10.2018