8000 [Messenger] Move container resetting after receiver acknowledging (in… · symfony/symfony@baa42f9 · GitHub
[go: up one dir, main page]

Skip to content

Commit baa42f9

Browse files
committed
[Messenger] Move container resetting after receiver acknowledging (in command)
1 parent 355dd00 commit baa42f9

File tree

52 files changed

+247
-70
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+247
-70
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1333,10 +1333,6 @@ function ($a) {
13331333
->fixXmlConfig('option')
13341334
->children()
13351335
->scalarNode('dsn')->end()
1336-
->booleanNode('reset_on_message')
1337-
->defaultFalse()
1338-
->info('Reset container services after each message. Turn it on when the transport is async and run in a worker.')
1339-
->end()
13401336
->scalarNode('serializer')->defaultNull()->info('Service id of a custom serializer to use.')->end()
13411337
->arrayNode('options')
13421338
->normalizeKeys(false)
@@ -1374,6 +1370,10 @@ function ($a) {
13741370
->defaultNull()
13751371
->info('Transport name to send failed messages to (after all retries have failed).')
13761372
->end()
1373+
->booleanNode('reset_on_message')
< EED3 /td>
1374+
->defaultNull()
1375+
->info('Reset container services after each message.')
1376+
->end()
13771377
->scalarNode('default_bus')->defaultNull()->end()
13781378
->arrayNode('buses')
13791379
->defaultValue(['messenger.bus.default' => ['default_middleware' => true, 'middleware' => []]])

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

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1977,7 +1977,6 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
19771977

19781978
$senderAliases = [];
19791979
$transportRetryReferences = [];
1980-
$transportNamesForResetServices = [];
19811980
foreach ($config['transports'] as $name => $transport) {
19821981
$serializerId = $transport['serializer'] ?? 'messenger.default_serializer';
19831982
$transportDefinition = (new Definition(TransportInterface::class))
@@ -2006,18 +2005,6 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
20062005

20072006
$transportRetryReferences[$name] = new Reference($retryServiceId);
20082007
}
2009-
if ($transport['reset_on_message']) {
2010-
$transportNamesForResetServices[] = $name;
2011-
}
2012-
}
2013-
2014-
if ($transportNamesForResetServices) {
2015-
$container
2016-
->getDefinition('messenger.listener.reset_services')
2017-
->replaceArgument(1, $transportNamesForResetServices)
2018-
;
2019-
} else {
2020-
$container->removeDefinition('messenger.listener.reset_services');
20212008
}
20222009

20232010
$senderReferences = [];
@@ -2089,6 +2076,17 @@ private function registerMessengerConfiguration(array $config, ContainerBuilder
20892076
$container->removeDefinition('console.command.messenger_failed_messages_show');
20902077
$container->removeDefinition('console.command.messenger_failed_messages_remove');
20912078
}
2079+
2080+
if (false === $config['reset_on_message']) {
2081+
throw new LogicException('The "framework.messenger.reset_on_message" configuration option can be set to "true" only. To prevent services resetting after each message you can set the "--no-reset" option in "messenger:consume" command.');
2082+
}
2083+
2084+
if (null === $config['reset_on_message']) {
2085+
trigger_deprecation('symfony/framework-bundle', '5.4', 'Not setting the "framework.messenger.reset_on_message" configuration option is deprecated, it will default to "true" in version 6.0.');
2086+
2087+
$container->getDefinition('console.command.messenger_consume_messages')->replaceArgument(5, null);
2088+
$container->removeDefinition('messenger.listener.reset_services');
2089+
}
20922090
}
20932091

20942092
private function registerCacheConfiguration(array $config, ContainerBuilder $container)

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@
142142
service('event_dispatcher'),
143143
service('logger')->nullOnInvalid(),
144144
[], // Receiver names
145+
service('messenger.listener.reset_services')->nullOnInvalid(),
145146
])
146147
->tag('console.command')
147148
->tag('monolog.logger', ['channel' => 'messenger'])

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,6 @@
203203
service('services_resetter'),
204204
abstract_arg('receivers names'),
205205
])
206-
->tag('kernel.event_subscriber')
207206

208207
->set('messenger.routable_message_bus', RoutableMessageBus::class)
209208
->args([

src/Symfony/Bundle/FrameworkBundle/Resources/config/schema/symfony-1.0.xsd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -469,6 +469,7 @@
469469
<xsd:attribute name="default-bus" type="xsd:string" />
470470
<xsd:attribute name="enabled" type="xsd:boolean" />
471471
<xsd:attribute name="failure-transport" type="xsd:string" />
472+
<xsd:attribute name="reset-on-message" type="xsd:boolean" />
472473
</xsd:complexType>
473474

474475
<xsd:complexType name="messenger_serializer">
@@ -505,7 +506,6 @@
505506
<xsd:attribute name="serializer" type="xsd:string" />
506507
<xsd:attribute name="dsn" type="xsd:string" />
507508
<xsd:attribute name="failure-transport" type="xsd:string" />
508-
<xsd:attribute name="reset-on-message" type="xsd:boolean" />
509509
</xsd:complexType>
510510

511511
<xsd:complexType name="messenger_retry_strategy">

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,7 @@ class_exists(SemaphoreStore::class) && SemaphoreStore::isSupported() ? 'semaphor
535535
],
536536
'default_bus' => null,
537537
'buses' => ['messenger.bus.default' => ['default_middleware' => true, 'middleware' => []]],
538+
'reset_on_message' => null,
538539
],
539540
'disallow_search_engine_index' => true,
540541
'http_client' => [

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
$container->loadFromExtension('framework', [
77
'messenger' => [
8+
'reset_on_message' => true,
89
'routing' => [
910
FooMessage::class => ['sender.bar', 'sender.biz'],
1011
BarMessage::class => 'sender.foo',

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_middleware_factory_erroneous_format.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
$container->loadFromExtension('framework', [
44
'messenger' => [
5+
'reset_on_message' => true,
56
'buses' => [
67
'command_bus' => [
78
'middleware' => [

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_multiple_buses.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
$container->loadFromExtension('framework', [
44
'messenger' => [
5+
'reset_on_message' => true,
56
'default_bus' => 'messenger.bus.commands',
67
'buses' => [
78
'messenger.bus.commands' => null,

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_multiple_failure_transports.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
$container->loadFromExtension('framework', [
44
'messenger' => [
5+
'reset_on_message' => true,
56
'transports' => [
67
'transport_1' => [
78
'dsn' => 'null://',

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_multiple_failure_transports_global.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
$container->loadFromExtension('framework', [
44
'messenger' => [
55
'failure_transport' => 'failure_transport_global',
6+
'reset_on_message' => true,
67
'transports' => [
78
'transport_1' => [
89
'dsn' => 'null://',

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_routing.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
$container->loadFromExtension('framework', [
44
'serializer' => true,
55
'messenger' => [
6+
'reset_on_message' => true,
67
'serializer' => [
78
'default_serializer' => 'messenger.transport.symfony_serializer',
89
],

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_routing_invalid_transport.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
$container->loadFromExtension('framework', [
44
'serializer' => true,
55
'messenger' => [
6+
'reset_on_message' => true,
67
'serializer' => [
78
'default_serializer' => 'messenger.transport.symfony_serializer',
89
],

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_routing_single.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
$container->loadFromExtension('framework', [
44
'messenger' => [
5+
'reset_on_message' => true,
56
'routing' => [
67
'Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\DummyMessage' => ['amqp'],
78
],

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_transport.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
$container->loadFromExtension('framework', [
44
'serializer' => true,
55
'messenger' => [
6+
'reset_on_message' => true,
67
'serializer' => [
78
'default_serializer' => 'messenger.transport.symfony_serializer',
89
'symfony_serializer' => [

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/messenger_transports.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
'serializer' => true,
55
'messenger' => [
66
'failure_transport' => 'failed',
7+
'reset_on_message' => true,
78
'serializer' => [
89
'default_serializer' => 'messenger.transport.symfony_serializer',
910
],
1011
'transports' => [
1112
'default' => 'amqp://localhost/%2f/messages',
1213
'customised' => [
1314
'dsn' => 'amqp://localhost/%2f/messages?exchange_name=exchange_name',
14-
'reset_on_message' => true,
1515
'options' => ['queue' => ['name' => 'Queue']],
1616
'serializer' => 'messenger.transport.native_php_serializer',
1717
'retry_strategy' => [
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
3+
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage;
4+
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage;
5+
6+
$container->loadFromExtension('framework', [
7+
'messenger' => [
8+
'reset_on_message' => false,
9+
'routing' => [
10+
FooMessage::class => ['sender.bar', 'sender.biz'],
11+
BarMessage::class => 'sender.foo',
12+
],
13+
'transports' => [
14+
'sender.biz' => 'null://',
15+
'sender.bar' => '< 10000 span class=pl-s>null://',
16+
'sender.foo' => 'null://',
17+
],
18+
],
19+
]);
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<?php
2+
3+
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage;
4+
use Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage;
5+
6+
$container->loadFromExtension('framework', [
7+
'messenger' => [
8+
'routing' => [
9+
FooMessage::class => ['sender.bar', 'sender.biz'],
10+
BarMessage::class => 'sender.foo',
11+
],
12+
'transports' => [
13+
'sender.biz' => 'null://',
14+
'sender.bar' => 'null://',
15+
'sender.foo' => 'null://',
16+
],
17+
],
18+
]);

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/notifier.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55

66
$container->loadFromExtension('framework', [
77
'messenger' => [
8-
'enabled' => true
8+
'enabled' => true,
9+
'reset_on_message' => true,
910
],
1011
'mailer' => [
1112
'dsn' => 'smtp://example.com',

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/php/notifier_without_mailer.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
],
1010
'messenger' => [
1111
'enabled' => true,
12+
'reset_on_message' => true,
1213
],
1314
'notifier' => [
1415
'enabled' => true,

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

88
<framework:config>
9-
<framework:messenger>
9+
<framework:messenger reset-on-message="true">
1010
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage">
1111
<framework:sender service="sender.bar" />
1212
<framework:sender service="sender.biz" />

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_multiple_buses.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

88
<framework:config>
9-
<framework:messenger default-bus="messenger.bus.commands">
9+
<framework:messenger default-bus="messenger.bus.commands" reset-on-message="true">
1010
<framework:bus name="messenger.bus.commands" />
1111
<framework:bus name="messenger.bus.events">
1212
<framework:middleware id="with_factory">

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_multiple_failure_transports.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

88
<framework:config>
9-
<framework:messenger>
9+
<framework:messenger reset-on-message="true">
1010
<framework:transport name="transport_1" dsn="null://" failure-transport="failure_transport_1" />
1111
<framework:transport name="transport_2" dsn="null://" />
1212
<framework:transport name="transport_3" dsn="null://" failure-transport="failure_transport_3" />

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_multiple_failure_transports_global.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

88
<framework:config>
9-
<framework:messenger failure-transport="failure_transport_global">
9+
<framework:messenger failure-transport="failure_transport_global" reset-on-message="true">
1010
<framework:transport name="transport_1" dsn="null://" failure-transport="failure_transport_1" />
1111
<framework:transport name="transport_2" dsn="null://" />
1212
<framework:transport name="transport_3" dsn="null://" failure-transport="failure_transport_3" />

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_routing.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<framework:config>
99
<framework:serializer enabled="true" />
10-
<framework:messenger>
10+
<framework:messenger reset-on-message="true">
1111
<framework:serializer default-serializer="messenger.transport.symfony_serializer" />
1212
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\DummyMessage">
1313
<framework:sender service="amqp" />

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_routing_invalid_transport.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<framework:config>
99
<framework:serializer enabled="true" />
10-
<framework:messenger>
10+
<framework:messenger reset-on-message="true">
1111
<framework:serializer default-serializer="messenger.transport.symfony_serializer" />
1212
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\DummyMessage">
1313
<framework:sender service="invalid" />

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_routing_single.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

88
<framework:config>
9-
<framework:messenger>
9+
<framework:messenger reset-on-message="true">
1010
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\DummyMessage">
1111
<framework:sender service="amqp" />
1212
</framework:routing>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_transport.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<framework:config>
99
<framework:serializer enabled="true" />
10-
<framework:messenger>
10+
<framework:messenger reset-on-message="true">
1111
<framework:serializer default-serializer="messenger.transport.symfony_serializer">
1212
<framework:symfony-serializer format="csv">
1313
<framework:context>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/messenger_transports.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
<framework:config>
99
<framework:serializer enabled="true" />
10-
<framework:messenger failure-transport="failed">
10+
<framework:messenger failure-transport="failed" reset-on-message="true">
1111
<framework:serializer default-serializer="messenger.transport.symfony_serializer" />
1212
<framework:transport name="default" dsn="amqp://localhost/%2f/messages" />
13-
<framework:transport name="customised" dsn="amqp://localhost/%2f/messages?exchange_name=exchange_name" serializer="messenger.transport.native_php_serializer" reset-on-message="true">
13+
<framework:transport name="customised" dsn="amqp://localhost/%2f/messages?exchange_name=exchange_name" serializer="messenger.transport.native_php_serializer">
1414
<framework:options>
1515
<framework:queue>
1616
<framework:name>Queue</framework:name>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<framework:config>
9+
<framework:messenger reset-on-message="false">
10+
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage">
11+
<framework:sender service="sender.bar" />
12+
<framework:sender service="sender.biz" />
13+
</framework:routing>
14+
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage">
15+
<framework:sender service="sender.foo" />
16+
</framework:routing>
17+
<framework:transport name="sender.bar" dsn="null://" />
18+
<framework:transport name="sender.biz" dsn="null://" />
19+
<framework:transport name="sender.foo" dsn="null://" />
20+
</framework:messenger>
21+
</framework:config>
22+
</container>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<container xmlns="http://symfony.com/schema/dic/services"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xmlns:framework="http://symfony.com/schema/dic/symfony"
5+
xsi:schemaLocation="http://symfony.com/schema/dic/services https://symfony.com/schema/dic/services/services-1.0.xsd
6+
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
7+
8+
<framework:config>
9+
<framework:messenger>
10+
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\FooMessage">
11+
<framework:sender service="sender.bar" />
12+
<framework:sender service="sender.biz" />
13+
</framework:routing>
14+
<framework:routing message-class="Symfony\Bundle\FrameworkBundle\Tests\Fixtures\Messenger\BarMessage">
15+
<framework:se C6FE nder service="sender.foo" />
16+
</framework:routing>
17+
<framework:transport name="sender.bar" dsn="null://" />
18+
<framework:transport name="sender.biz" dsn="null://" />
19+
<framework:transport name="sender.foo" dsn="null://" />
20+
</framework:messenger>
21+
</framework:config>
22+
</container>

src/Symfony/Bundle/FrameworkBundle/Tests/DependencyInjection/Fixtures/xml/notifier.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
http://symfony.com/schema/dic/symfony https://symfony.com/schema/dic/symfony/symfony-1.0.xsd">
77

88
<framework:config>
9-
<framework:messenger enabled="true" />
9+
<framework:messenger enabled="true" reset-on-message="true" />
1010
<framework:mailer dsn="smtp://example.com" />
1111
<framework:notifier enabled="true" notification-on-failed-messages="true">
1212
<framework:chatter-transport name="slack">null</framework:chatter-transport>

0 commit comments

Comments
 (0)
0