platform/api/symfony/Component/Messenger/Middleware/RejectRedeliveredMessageMiddleware.yaml
2024-09-02 10:44:11 -07:00

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