class RejectRedeliveredMessageMiddleware implementsMiddlewareInterface

Middleware that throws a RejectRedeliveredMessageException when a message is detected that has been redelivered by AMQP.

The middleware runs before the HandleMessageMiddleware and prevents redelivered messages from being handled directly. The thrown exception is caught by the worker and will trigger the retry logic according to the retry strategy.

AMQP redelivers messages when they do not get acknowledged or rejected. This can happen when the connection times out or an exception is thrown before acknowledging or rejecting. When such errors happen again while handling the redelivered message, the message would get redelivered again and again. The purpose of this middleware is to prevent infinite redelivery loops and to unblock the queue by republishing the redelivered messages as retries with a retry limit and potential delay.

Methods

Envelope
handle(Envelope$envelope,StackInterface$stack)

No description

Details

Envelope handle(Envelope$envelope,StackInterface$stack)

Parameters

Envelope $envelope
StackInterface $stack

Return Value

Envelope