[rabbitmq-discuss] Retry Message for 3 times with 10 seconds interval - in Consumer

Gary Russell grussell at gopivotal.com
Tue May 20 20:24:05 BST 2014


@Bean
public MethodInterceptor retryAdvice() {
FixedBackOffPolicy backOffPolicy = new FixedBackOffPolicy();
backOffPolicy.setBackOffPeriod(10000);;
return RetryInterceptorBuilder.stateful()
.backOffPolicy(backOffPolicy)
.maxAttempts(3)
.recoverer(new RejectAndDontRequeueRecoverer())
.build();
}

Add it to the adviceChain property of the SimpleMessageListenerContainer.

Note: stateful retry requires the message to have a message id; use a
stateless advice otherwise.

After the retries are exhausted, the message will be rejected (and dropped
or sent to a Dead Letter Exchange of so configured).



On Tue, May 20, 2014 at 3:09 PM, Srinath Sridharan -X (srinatsr - ZENSAR
TECHNOLOGIES INC at Cisco) <srinatsr at cisco.com> wrote:

>
>
> Hello,
>
>
>
> I am consuming the messages using the listener as follows,  I need to
> retry processing three times if any exceptions occurred.
>
>
>
> <bean
>
>         class=
> *"org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer"*
> >
>
>         <property name=*"connectionFactory"* ref=*"connectionFactory"* />
>
>         <property name=*"queueNames"*>
>
>             <array>
>
>                 <value>validateRequestQueue</value>
>
>             </array>
>
>         </property>
>
>         <property name=*"messageListener"*>
>
>             <bean
>
>                 class=
> *"org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter"*
> >
>
>                 <property name=*"delegate"* ref=*"retryConsumer"* />
>
>             </bean>
>
>         </property>
>
>         <!-- <property name="acknowledgeMode" value="NONE" /> -->
>
>     </bean>
>
>
>
>
>
> *public* *class* RetryConsumer *implements* ChannelAwareMessageListener {
>
>
>
>        /**
>
>        * Callback for processing a received Rabbit message.
>
>        * *@param* message the received AMQP message
>
>        * *@param* channel the underlying Rabbit Channel
>
>        * *@throws* Exception
>
>         */
>
>        @Override
>
>        *public* *void* onMessage(Message message, Channel channel)
> *throws* Exception {
>
>
>
>              System.*out*.println("Received Message :: "+*new*String(message.getBody()));
>
>              *if*(*true*){
>
>              *throw* *new* RuntimeException("Error");
>
>              }
>
>
>
>        }
>
>
>
> Regards …*?*
>
> Srinath
>
>
>
> *From:* Srinath Sridharan -X (srinatsr - ZENSAR TECHNOLOGIES INC at
> Cisco)
> *Sent:* Monday, May 19, 2014 10:47 AM
> *To:* rabbitmq-discuss at lists.rabbitmq.com
> *Subject:* Retry Message for 3 times with 10 seconds interval - in
> Consumer
>
>
>
>
>
> Retry unacknowledged RabbitMQ message in 10 second interval
>
> And Retry 3 times using Spring framework in java .
>
>
>
> Please need help on this
>
>
>
> Regards …*?*
>
> Srinath
>
>
>
> _______________________________________________
> rabbitmq-discuss mailing list
> rabbitmq-discuss at lists.rabbitmq.com
> https://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20140520/51f2f6c4/attachment.html>


More information about the rabbitmq-discuss mailing list