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 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" >
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" />
Original file line number Diff line number Diff line change 33$ container ->loadFromExtension ('framework ' , [
44 'serializer ' => true ,
55 'messenger ' => [
6+ 'failure_transport ' => 'failed ' ,
67 'serializer ' => [
78 'default_serializer ' => 'messenger.transport.symfony_serializer ' ,
89 ],
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 ],
Original file line number Diff line number Diff line change 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" >
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 >
Original file line number Diff line number Diff line change 11framework :
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'
Original file line number Diff line number Diff 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 ()
You can’t perform that action at this time.
0 commit comments