File tree 5 files changed +35
-1
lines changed
Tests/DependencyInjection
5 files changed +35
-1
lines changed Original file line number Diff line number Diff line change 427
427
</xsd : sequence >
428
428
<xsd : attribute name =" default-bus" type =" xsd:string" />
429
429
<xsd : attribute name =" enabled" type =" xsd:boolean" />
430
+ <xsd : attribute name =" failure-transport" type =" xsd:string" />
430
431
</xsd : complexType >
431
432
432
433
<xsd : complexType name =" messenger_serializer" >
457
458
<xsd : complexType name =" messenger_transport" >
458
459
<xsd : sequence >
459
460
<xsd : element name =" options" type =" metadata" minOccurs =" 0" maxOccurs =" unbounded" />
461
+ <xsd : element name =" retry-strategy" type =" messenger_retry_strategy" minOccurs =" 0" maxOccurs =" 1" />
460
462
</xsd : sequence >
461
463
<xsd : attribute name =" name" type =" xsd:string" />
462
464
<xsd : attribute name =" serializer" type =" xsd:string" />
463
465
<xsd : attribute name =" dsn" type =" xsd:string" />
464
466
</xsd : complexType >
465
467
468
+ <xsd : complexType name =" messenger_retry_strategy" >
469
+ <xsd : attribute name =" service" type =" xsd:string" />
470
+ <xsd : attribute name =" max-retries" type =" xsd:integer" />
471
+ <xsd : attribute name =" delay" type =" xsd:integer" />
472
+ <xsd : attribute name =" multiplier" type =" xsd:float" />
473
+ <xsd : attribute name =" max-delay" type =" xsd:float" />
474
+ </xsd : complexType >
475
+
466
476
<xsd : complexType name =" messenger_bus" >
467
477
<xsd : sequence >
468
478
<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 @@ -725,6 +725,13 @@ public function testMessengerTransports()
725
725
$ this ->assertSame ('redis://127.0.0.1:6379/messages ' , $ transportArguments [0 ]);
726
726
727
727
$ this ->assertTrue ($ container ->hasDefinition ('messenger.transport.redis.factory ' ));
728
+
729
+ $ this ->assertSame (10 , $ container ->getDefinition ('messenger.retry.multiplier_retry_strategy.customised ' )->getArgument (0 ));
730
+ $ this ->assertSame (7 , $ container ->getDefinition ('messenger.retry.multiplier_retry_strategy.customised ' )->getArgument (1 ));
731
+ $ this ->assertSame (3 , $ container ->getDefinition ('messenger.retry.multiplier_retry_strategy.customised ' )->getArgument (2 ));
732
+ $ this ->assertSame (100 , $ container ->getDefinition ('messenger.retry.multiplier_retry_strategy.customised ' )->getArgument (3 ));
733
+
734
+ $ this ->assertEquals (new Reference ('messenger.transport.failed ' ), $ container ->getDefinition ('messenger.failure.send_failed_message_to_failure_transport_listener ' )->getArgument (0 ));
728
735
}
729
736
730
737
public function testMessengerRouting ()
You can’t perform that action at this time.
0 commit comments