RejectRedeliveredMessageMiddleware
in package
implements
MiddlewareInterface
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.
Tags
Table of Contents
Interfaces
Methods
Methods
handle()
public
handle(Envelope $envelope, StackInterface $stack) : Envelope
Parameters
- $envelope : Envelope
- $stack : StackInterface