@Override public RetryOperationsInterceptor build() { if (this.recoverer != null) { this.interceptor.setRecoverer(this.recoverer); } if (this.retryOperations != null) { this.interceptor.setRetryOperations(this.retryOperations); } else { this.interceptor.setRetryOperations(this.retryTemplate); } if (this.label != null) { this.interceptor.setLabel(this.label); } return this.interceptor; }
@Override public RetryOperationsInterceptor getObject() { RetryOperationsInterceptor retryInterceptor = new RetryOperationsInterceptor(); RetryOperations retryTemplate = getRetryOperations(); if (retryTemplate == null) { retryTemplate = new RetryTemplate(); } retryInterceptor.setRetryOperations(retryTemplate); final MessageRecoverer messageRecoverer = getMessageRecoverer(); retryInterceptor.setRecoverer((args, cause) -> { Message message = (Message) args[1]; if (messageRecoverer == null) { logger.warn("Message dropped on recovery: " + message, cause); } else { messageRecoverer.recover(message, cause); } return null; }); return retryInterceptor; }
/** * The retry operations interceptor for the consumer. * * @return The retry operations interceptor for the consumer. * * @since 1.0 */ @Bean RetryOperationsInterceptor retryPolicy() { RetryPolicyExceptionUnpackerDelegate retryPolicyExceptionUnpackerDelegate = new RetryPolicyExceptionUnpackerDelegate(ourExceptionRetryPolicy()); RetryTemplate retryTemplate = new RetryTemplate(); BackOffPolicy backoffPolicy = new ExponentialBackOffPolicy(); retryTemplate.setBackOffPolicy(backoffPolicy); retryTemplate.setRetryPolicy(retryPolicyExceptionUnpackerDelegate); RetryOperationsInterceptor interceptor = new RetryOperationsInterceptor(); interceptor.setRetryOperations(retryTemplate); return interceptor; }
LOGGER.trace("Starting a new Retry Interceptor for {}", (invocation != null ? invocation.getMethod() : null)); result = super.invoke(invocation); if (LOGGER.isTraceEnabled()) { LOGGER.trace("Finished a new Retry Interceptor for {}", (invocation != null ? invocation.getMethod() : null));
@Override public RetryOperationsInterceptor getObject() { RetryOperationsInterceptor retryInterceptor = new RetryOperationsInterceptor(); RetryOperations retryTemplate = getRetryOperations(); if (retryTemplate == null) { retryTemplate = new RetryTemplate(); } retryInterceptor.setRetryOperations(retryTemplate); final MessageRecoverer messageRecoverer = getMessageRecoverer(); retryInterceptor.setRecoverer((args, cause) -> { Message message = (Message) args[1]; if (messageRecoverer == null) { logger.warn("Message dropped on recovery: " + message, cause); } else { messageRecoverer.recover(message, cause); } return null; }); return retryInterceptor; }
/** * The creates a default <code>RetryOperationsInterceptor</code> for a * listener container. * * @return The default <code>RetryOperationsInterceptor</code>. * @since 1.0 */ public static RetryOperationsInterceptor makeContainerListenerRetryPolicy() { final RetryPolicy retryPolicy = DefaultRetryPolicyFactory.makeExceptionClassifierRetryPolicy(); // Delegate handler that unpacks the throwable to get the root // offending exception so we can set a specific policy for it. final RetryPolicyExceptionUnpackerDelegate retryPolicyExceptionUnpackerDelegate = new RetryPolicyExceptionUnpackerDelegate( retryPolicy); final RetryTemplate retryTemplate = new RetryTemplate(); final BackOffPolicy backoffPolicy = new ExponentialBackOffPolicy(); retryTemplate.setBackOffPolicy(backoffPolicy); retryTemplate.setRetryPolicy(retryPolicyExceptionUnpackerDelegate); final RetryOperationsInterceptor interceptor = new RetryOperationsInterceptor(); interceptor.setRetryOperations(retryTemplate); return interceptor; }
LOGGER.trace("Starting a new Retry Interceptor for {}", (invocation != null ? invocation.getMethod() : null)); result = super.invoke(invocation); if (LOGGER.isTraceEnabled()) { LOGGER.trace("Finished a new Retry Interceptor for {}", (invocation != null ? invocation.getMethod() : null));
/** * The creates a default <code>RetryOperationsInterceptor</code> for a * listener container. * * @return The default <code>RetryOperationsInterceptor</code>. * @since 1.0 */ public static RetryOperationsInterceptor makeContainerListenerRetryPolicy() { final RetryPolicy retryPolicy = DefaultRetryPolicyFactory.makeExceptionClassifierRetryPolicy(); // Delegate handler that unpacks the throwable to get the root // offending exception so we can set a specific policy for it. final RetryPolicyExceptionUnpackerDelegate retryPolicyExceptionUnpackerDelegate = new RetryPolicyExceptionUnpackerDelegate( retryPolicy); final RetryTemplate retryTemplate = new RetryTemplate(); final BackOffPolicy backoffPolicy = new ExponentialBackOffPolicy(); retryTemplate.setBackOffPolicy(backoffPolicy); retryTemplate.setRetryPolicy(retryPolicyExceptionUnpackerDelegate); final RetryOperationsInterceptor interceptor = new RetryOperationsInterceptor(); interceptor.setRetryOperations(retryTemplate); return interceptor; }
@Override public RetryOperationsInterceptor build() { if (this.recoverer != null) { this.interceptor.setRecoverer(this.recoverer); } if (this.retryOperations != null) { this.interceptor.setRetryOperations(this.retryOperations); } else { this.interceptor.setRetryOperations(this.retryTemplate); } if (this.label != null) { this.interceptor.setLabel(this.label); } return this.interceptor; }