Class RequestHandlerRetryAdvice

All Implemented Interfaces:
Advice, Interceptor, MethodInterceptor, Aware, BeanFactoryAware, BeanNameAware, InitializingBean, ApplicationContextAware, ExpressionCapable, NamedComponent, org.springframework.retry.RetryListener

public class RequestHandlerRetryAdvice extends AbstractRequestHandlerAdvice implements org.springframework.retry.RetryListener
Uses spring-retry to perform stateless or stateful retry. Stateless retry means the retries are performed internally by the RetryTemplate; stateful retry means the exception is thrown but state is maintained to support the retry policies. Stateful retry requires a RetryStateGenerator.
Since:
2.2
Author:
Gary Russell, Artem Bilan
  • Constructor Details

    • RequestHandlerRetryAdvice

      public RequestHandlerRetryAdvice()
  • Method Details

    • setRetryTemplate

      public void setRetryTemplate(org.springframework.retry.support.RetryTemplate retryTemplate)
      Set the retry template. Cause traversal should be enabled in the retry policy because user exceptions may be wrapped in a MessagingException.
      Parameters:
      retryTemplate - the retry template.
    • setRecoveryCallback

      public void setRecoveryCallback(org.springframework.retry.RecoveryCallback<Object> recoveryCallback)
    • setRetryStateGenerator

      public void setRetryStateGenerator(RetryStateGenerator retryStateGenerator)
    • onInit

      protected void onInit()
      Description copied from class: IntegrationObjectSupport
      Subclasses may implement this for initialization logic.
      Overrides:
      onInit in class IntegrationObjectSupport
    • doInvoke

      protected Object doInvoke(AbstractRequestHandlerAdvice.ExecutionCallback callback, Object target, Message<?> message)
      Description copied from class: AbstractRequestHandlerAdvice
      Subclasses implement this method to apply behavior to the MessageHandler.

      callback.execute() invokes the handler method and returns its result, or null.

      Specified by:
      doInvoke in class AbstractRequestHandlerAdvice
      Parameters:
      callback - Subclasses invoke the execute() method on this interface to invoke the handler method.
      target - The target handler.
      message - The message that will be sent to the handler.
      Returns:
      the result after invoking the MessageHandler.
    • open

      public <T, E extends Throwable> boolean open(org.springframework.retry.RetryContext context, org.springframework.retry.RetryCallback<T,E> callback)
      Specified by:
      open in interface org.springframework.retry.RetryListener
    • close

      public <T, E extends Throwable> void close(org.springframework.retry.RetryContext context, org.springframework.retry.RetryCallback<T,E> callback, Throwable throwable)
      Specified by:
      close in interface org.springframework.retry.RetryListener
    • onError

      public <T, E extends Throwable> void onError(org.springframework.retry.RetryContext context, org.springframework.retry.RetryCallback<T,E> callback, Throwable throwable)
      Specified by:
      onError in interface org.springframework.retry.RetryListener