56 lines
1.7 KiB
YAML
56 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
|