File tree Expand file tree Collapse file tree 5 files changed +35
-1
lines changed
Tests/DependencyInjection Expand file tree Collapse file tree 5 files changed +35
-1
lines changed Original file line number Diff line number Diff line change 414
414
</xsd : sequence >
415
415
<xsd : attribute name =" default-bus" type =" xsd:string" />
416
416
<xsd : attribute name =" enabled" type =" xsd:boolean" />
417
+ <xsd : attribute name =" failure-transport" type =" xsd:string" />
417
418
</xsd : complexType >
418
419
419
420
<xsd : complexType name =" messenger_serializer" >
444
445
<xsd : complexType name =" messenger_transport" >
445
446
<xsd : sequence >
446
447
<xsd : element name =" options" type =" metadata" minOccurs =" 0" maxOccurs =" unbounded" />
448
+ <xsd : element name =" retry-strategy" type =" messenger_retry_strategy" minOccurs =" 0" maxOccurs =" 1" />
447
449
</xsd : sequence >
448
450
<xsd : attribute name =" name" type =" xsd:string" />
449
451
<xsd : attribute name =" serializer" type =" xsd:string" />
450
452
<xsd : attribute name =" dsn" type =" xsd:string" />
451
453
</xsd : complexType >
452
454
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
+
453
463
<xsd : complexType name =" messenger_bus" >
454
464
<xsd : sequence >
455
465
<xsd : element name =" middleware" type =" messenger_middleware" minOccurs =" 0" maxOccurs =" unbounded" />
Original file line number Diff line number Diff line change 3
3
$ container ->loadFromExtension ('framework ' , [
4
4
'serializer ' => true ,
5
5
'messenger ' => [
6
+ 'failure_transport ' => 'failed ' ,
6
7
'serializer ' => [
7
8
'default_serializer ' => 'messenger.transport.symfony_serializer ' ,
8
9
],
12
13
'dsn ' => 'amqp://localhost/%2f/messages?exchange_name=exchange_name ' ,
13
14
'options ' => ['queue ' => ['name ' => 'Queue ' ]],
14
15
'serializer ' => 'messenger.transport.native_php_serializer ' ,
16
+ 'retry_strategy ' => [
17
+ 'max_retries ' => 10 ,
18
+ 'delay ' => 7 ,
19
+ 'multiplier ' => 3 ,
20
+ 'max_delay ' => 100 ,
21
+ ],
15
22
],
23
+ 'failed ' => 'in-memory:/// ' ,
16
24
'redis ' => 'redis://127.0.0.1:6379/messages ' ,
17
25
],
18
26
],
Original file line number Diff line number Diff line change 7
7
8
8
<framework : config >
9
9
<framework : serializer enabled =" true" />
10
- <framework : messenger >
10
+ <framework : messenger failure-transport = " failed " >
11
11
<framework : serializer default-serializer =" messenger.transport.symfony_serializer" />
12
12
<framework : transport name =" default" dsn =" amqp://localhost/%2f/messages" />
13
13
<framework : transport name =" customised" dsn =" amqp://localhost/%2f/messages?exchange_name=exchange_name" serializer =" messenger.transport.native_php_serializer" >
16
16
<framework : name >Queue</framework : name >
17
17
</framework : queue >
18
18
</framework : options >
19
+ <framework : retry-strategy max-retries =" 10" delay =" 7" multiplier =" 3" max-delay =" 100" />
19
20
</framework : transport >
21
+ <framework : transport name =" failed" dsn =" in-memory:///" />
20
22
<framework : transport name =" redis" dsn =" redis://127.0.0.1:6379/messages" />
21
23
</framework : messenger >
22
24
</framework : config >
Original file line number Diff line number Diff line change 1
1
framework :
2
2
serializer : true
3
3
messenger :
4
+ failure_transport : failed
4
5
serializer :
5
6
default_serializer : messenger.transport.symfony_serializer
6
7
transports :
@@ -11,4 +12,10 @@ framework:
11
12
queue :
12
13
name : Queue
13
14
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:///'
14
21
redis : ' redis://127.0.0.1:6379/messages'
Original file line number Diff line number Diff line change @@ -627,6 +627,13 @@ public function testMessengerTransports()
627
627
$ this ->assertSame ('redis://127.0.0.1:6379/messages ' , $ transportArguments [0 ]);
628
628
629
629
$ 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 ));
630
637
}
631
638
632
639
public function testMessengerRouting ()
You can’t perform that action at this time.
0 commit comments