55 lines
1.7 KiB
YAML
55 lines
1.7 KiB
YAML
name: RejectRedeliveredMessageMiddleware
|
|
class_comment: '# * 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.
|
|
|
|
# *
|
|
|
|
# * @author Tobias Schultze <http://tobion.de>'
|
|
dependencies:
|
|
- name: AmqpReceivedStamp
|
|
type: class
|
|
source: Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceivedStamp
|
|
- name: Envelope
|
|
type: class
|
|
source: Symfony\Component\Messenger\Envelope
|
|
- name: RejectRedeliveredMessageException
|
|
type: class
|
|
source: Symfony\Component\Messenger\Exception\RejectRedeliveredMessageException
|
|
properties: []
|
|
methods:
|
|
- name: handle
|
|
visibility: public
|
|
parameters:
|
|
- name: envelope
|
|
- name: stack
|
|
comment: null
|
|
traits:
|
|
- Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpReceivedStamp
|
|
- Symfony\Component\Messenger\Envelope
|
|
- Symfony\Component\Messenger\Exception\RejectRedeliveredMessageException
|
|
interfaces:
|
|
- MiddlewareInterface
|