Skip to content

Commit 06ed105

Browse files
committed
Removed RejectRedeliveredMessageMiddleware to avoid message to be lost if it cannot be processed by both handler and failed transport
1 parent 8aaa152 commit 06ed105

File tree

6 files changed

+1
-86
lines changed

6 files changed

+1
-86
lines changed

src/Symfony/Bundle/FrameworkBundle/DependencyInjection/FrameworkExtension.php

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1803,7 +1803,6 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
18031803
$defaultMiddleware = [
18041804
'before' => [
18051805
['id' => 'add_bus_name_stamp_middleware'],
1806-
['id' => 'reject_redelivered_message_middleware'],
18071806
['id' => 'dispatch_after_current_bus'],
18081807
['id' => 'failed_message_processing_middleware'],
18091808
],

src/Symfony/Bundle/FrameworkBundle/Resources/config/messenger.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
use Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware;
2626
use Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware;
2727
use Symfony\Component\Messenger\Middleware\HandleMessageMiddleware;
28-
use Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware;
2928
use Symfony\Component\Messenger\Middleware\RouterContextMiddleware;
3029
use Symfony\Component\Messenger\Middleware\SendMessageMiddleware;
3130
use Symfony\Component\Messenger\Middleware\TraceableMiddleware;
@@ -91,8 +90,6 @@
9190
service('validator'),
9291
])
9392

94-
->set('messenger.middleware.reject_redelivered_message_middleware', RejectRedeliveredMessageMiddleware::class)
95-
9693
->set('messenger.middleware.failed_message_processing_middleware', FailedMessageProcessingMiddleware::class)
9794

9895
->set('messenger.middleware.traceable', TraceableMiddleware::class)

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -801,7 +801,6 @@ public function testMessengerWithMultipleBuses()
801801
$this->assertSame([], $container->getDefinition('messenger.bus.commands')->getArgument(0));
802802
$this->assertEquals([
803803
['id' => 'add_bus_name_stamp_middleware', 'arguments' => ['messenger.bus.commands']],
804-
['id' => 'reject_redelivered_message_middleware'],
805804
['id' => 'dispatch_after_current_bus'],
806805
['id' => 'failed_message_processing_middleware'],
807806
['id' => 'send_message'],
@@ -811,7 +810,6 @@ public function testMessengerWithMultipleBuses()
811810
$this->assertSame([], $container->getDefinition('messenger.bus.events')->getArgument(0));
812811
$this->assertEquals([
813812
['id' => 'add_bus_name_stamp_middleware', 'arguments' => ['messenger.bus.events']],
814-
['id' => 'reject_redelivered_message_middleware'],
815813
['id' => 'dispatch_after_current_bus'],
816814
['id' => 'failed_message_processing_middleware'],
817815
['id' => 'with_factory', 'arguments' => ['foo', true, ['bar' => 'baz']]],

src/Symfony/Component/Messenger/Exception/RejectRedeliveredMessageException.php

Lines changed: 0 additions & 19 deletions
This file was deleted.

src/Symfony/Component/Messenger/Middleware/RejectRedeliveredMessageMiddleware.php

Lines changed: 0 additions & 50 deletions
This file was deleted.

src/Symfony/Component/Messenger/Worker.php

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -130,24 +130,14 @@ private function handleMessage(Envelope $envelope, ReceiverInterface $receiver,
130130
try {
131131
$envelope = $this->bus->dispatch($envelope->with(new ReceivedStamp($transportName), new ConsumedByWorkerStamp()));
132132
} catch (\Throwable $throwable) {
133-
$rejectFirst = $throwable instanceof RejectRedeliveredMessageException;
134-
if ($rejectFirst) {
135-
// redelivered messages are rejected first so that continuous failures in an event listener or while
136-
// publishing for retry does not cause infinite redelivery loops
137-
$receiver->reject($envelope);
138-
}
139-
140133
if ($throwable instanceof HandlerFailedException) {
141134
$envelope = $throwable->getEnvelope();
142135
}
143136

144137
$failedEvent = new WorkerMessageFailedEvent($envelope, $transportName, $throwable);
145138
$this->dispatchEvent($failedEvent);
146139
$envelope = $failedEvent->getEnvelope();
147-
148-
if (!$rejectFirst) {
149-
$receiver->reject($envelope);
150-
}
140+
$receiver->reject($envelope);
151141

152142
return;
153143
}

0 commit comments

Comments
 (0)