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

Skip to content 8000

Commit b75dd03

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

File tree

52 files changed

+251
-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

+251
-70
lines changed

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

Lines changed: 4 additions & 4 deleti 17A6 ons
Original file line numberDiff line numberDiff line change
@@ -1333,10 +1333,6 @@ function ($a) {
13331333
->fixXmlConfig('option')
13341334
F422 ->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')
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://',

0 commit comments

Comments
 (0)
0