class RejectRedeliveredMessageMiddleware implements MiddlewareInterface
{ public function handle(Envelope
$envelope, StackInterface
$stack): Envelope
{ $amqpReceivedStamp =
$envelope->
last(AmqpReceivedStamp::
class);
if ($amqpReceivedStamp instanceof AmqpReceivedStamp &&
$amqpReceivedStamp->
getAmqpEnvelope()->
isRedelivery()) { throw new RejectRedeliveredMessageException('Redelivered message from AMQP detected that will be rejected and trigger the retry logic.'
);
} return $stack->
next()->
handle($envelope,
$stack);
}}