Skip to content

Commit fc6a005

Browse files
committed
Merge branch '4.4' into 5.0
* 4.4: [Dotenv] Documentation improvement [DI] Clarified deprecation for TypedReference in 4.4 [Validator] Add missing vietnamese translations add German translation add missing Messenger options to XML schema definition [Validator][ConstraintValidator] Update wrong PRETTY_DATE doc [DomCrawler][Form] Fix PHPDoc on get & offsetGet [ErrorHandler] fix parsing static return type on interface method annotation (fix #35836) prevent method calls on null values Return int if scale = 0
2 parents ffdc288 + df55289 commit fc6a005

File tree

5 files changed

+35
-1
lines changed

5 files changed

+35
-1
lines changed

Resources/config/schema/symfony-1.0.xsd

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,6 +414,7 @@
414414
</xsd:sequence>
415415
<xsd:attribute name="default-bus" type="xsd:string" />
416416
<xsd:attribute name="enabled" type="xsd:boolean" />
417+
<xsd:attribute name="failure-transport" type="xsd:string" />
417418
</xsd:complexType>
418419

419420
<xsd:complexType name="messenger_serializer">
@@ -444,12 +445,21 @@
444445
<xsd:complexType name="messenger_transport">
445446
<xsd:sequence>
446447
<xsd:element name="options" type="metadata" minOccurs="0" maxOccurs="unbounded" />
448+
<xsd:element name="retry-strategy" type="messenger_retry_strategy" minOccurs="0" maxOccurs="1" />
447449
</xsd:sequence>
448450
<xsd:attribute name="name" type="xsd:string" />
449451
<xsd:attribute name="serializer" type="xsd:string" />
450452
<xsd:attribute name="dsn" type="xsd:string" />
451453
</xsd:complexType>
452454

455+
<xsd:complexType name="messenger_retry_strategy">
456+
<xsd:attribute name="service" type="xsd:string" />
457+
<xsd:attribute name="max-retries" type="xsd:integer" />
458+
<xsd:attribute name="delay" type="xsd:integer" />
459+
<xsd:attribute name="multiplier" type="xsd:float" />
460+
<xsd:attribute name="max-delay" type="xsd:float" />
461+
</xsd:complexType>
462+
453463
<xsd:complexType name="messenger_bus">
454464
<xsd:sequence>
455465
<xsd:element name="middleware" type="messenger_middleware" minOccurs="0" maxOccurs="unbounded" />

Tests/DependencyInjection/Fixtures/php/messenger_transports.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
$container->loadFromExtension('framework', [
44
'serializer' => true,
55
'messenger' => [
6+
'failure_transport' => 'failed',
67
'serializer' => [
78
'default_serializer' => 'messenger.transport.symfony_serializer',
89
],
@@ -12,7 +13,14 @@
1213
'dsn' => 'amqp://localhost/%2f/messages?exchange_name=exchange_name',
1314
'options' => ['queue' => ['name' => 'Queue']],
1415
'serializer' => 'messenger.transport.native_php_serializer',
16+
'retry_strategy' => [
17+
'max_retries' => 10,
18+
'delay' => 7,
19+
'multiplier' => 3,
20+
'max_delay' => 100,
21+
],
1522
],
23+
'failed' => 'in-memory:///',
1624
'redis' => 'redis://127.0.0.1:6379/messages',
1725
],
1826
],

Tests/DependencyInjection/Fixtures/xml/messenger_transports.xml

Lines changed: 3 additions & 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 failure-transport="failed">
1111
<framework:serializer default-serializer="messenger.transport.symfony_serializer" />
1212
<framework:transport name="default" dsn="amqp://localhost/%2f/messages" />
1313
<framework:transport name="customised" dsn="amqp://localhost/%2f/messages?exchange_name=exchange_name" serializer="messenger.transport.native_php_serializer">
@@ -16,7 +16,9 @@
1616
<framework:name>Queue</framework:name>
1717
</framework:queue>
1818
</framework:options>
19+
<framework:retry-strategy max-retries="10" delay="7" multiplier="3" max-delay="100"/>
1920
</framework:transport>
21+
<framework:transport name="failed" dsn="in-memory:///" />
2022
<framework:transport name="redis" dsn="redis://127.0.0.1:6379/messages" />
2123
</framework:messenger>
2224
</framework:config>

Tests/DependencyInjection/Fixtures/yml/messenger_transports.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
framework:
22
serializer: true
33
messenger:
4+
failure_transport: failed
45
serializer:
56
default_serializer: messenger.transport.symfony_serializer
67
transports:
@@ -11,4 +12,10 @@ framework:
1112
queue:
1213
name: Queue
1314
serializer: 'messenger.transport.native_php_serializer'
15+
retry_strategy:
16+
max_retries: 10
17+
delay: 7
18+
multiplier: 3
19+
max_delay: 100
20+
failed: 'in-memory:///'
1421
redis: 'redis://127.0.0.1:6379/messages'

Tests/DependencyInjection/FrameworkExtensionTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -627,6 +627,13 @@ public function testMessengerTransports()
627627
$this->assertSame('redis://127.0.0.1:6379/messages', $transportArguments[0]);
628628

629629
$this->assertTrue($container->hasDefinition('messenger.transport.redis.factory'));
630+
631+
$this->assertSame(10, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(0));
632+
$this->assertSame(7, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(1));
633+
$this->assertSame(3, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(2));
634+
$this->assertSame(100, $container->getDefinition('messenger.retry.multiplier_retry_strategy.customised')->getArgument(3));
635+
636+
$this->assertEquals(new Reference('messenger.transport.failed'), $container->getDefinition('messenger.failure.send_failed_message_to_failure_transport_listener')->getArgument(0));
630637
}
631638

632639
public function testMessengerRouting()

0 commit comments

Comments
 (0)