7
7
use Enqueue \Client \CommandSubscriberInterface ;
8
8
use Enqueue \Client \TopicSubscriberInterface ;
9
9
use Enqueue \Client \TraceableProducer ;
10
- use Enqueue \Consumption \QueueConsumer ;
11
10
use Enqueue \JobQueue \Job ;
12
11
use Enqueue \Symfony \DependencyInjection \ClientFactory ;
13
12
use Enqueue \Symfony \DependencyInjection \TransportFactory ;
@@ -29,13 +28,15 @@ public function load(array $configs, ContainerBuilder $container): void
29
28
$ loader = new YamlFileLoader ($ container , new FileLocator (__DIR__ .'/../Resources/config ' ));
30
29
$ loader ->load ('services.yml ' );
31
30
32
- $ this ->setupAutowiringForProcessors ($ container );
33
-
34
31
$ transportFactory = (new TransportFactory ('default ' ));
35
- $ transportFactory ->createConnectionFactory ($ container , $ config ['transport ' ]);
36
- $ transportFactory ->createContext ($ container , $ config ['transport ' ]);
32
+ $ transportFactory ->buildConnectionFactory ($ container , $ config ['transport ' ]);
33
+ $ transportFactory ->buildContext ($ container , []);
34
+ $ transportFactory ->buildQueueConsumer ($ container , $ config ['consumption ' ]);
35
+ $ transportFactory ->buildRpcClient ($ container , []);
37
36
38
37
if (isset ($ config ['client ' ])) {
38
+ $ this ->setupAutowiringForProcessors ($ container );
39
+
39
40
$ loader ->load ('client.yml ' );
40
41
$ loader ->load ('extensions/flush_spool_producer_extension.yml ' );
41
42
$ loader ->load ('extensions/exclusive_command_extension.yml ' );
@@ -77,17 +78,20 @@ public function load(array $configs, ContainerBuilder $container): void
77
78
->replaceArgument (1 , $ config ['client ' ]['redelivered_delay_time ' ])
78
79
;
79
80
}
80
- }
81
81
82
- // todo configure queue consumer
83
- $ container ->getDefinition (QueueConsumer::class)
84
- ->replaceArgument (2 , $ config ['consumption ' ]['idle_timeout ' ])
85
- ->replaceArgument (3 , $ config ['consumption ' ]['receive_timeout ' ])
86
- ;
82
+ $ locatorId = 'enqueue.locator ' ;
83
+ if ($ container ->hasDefinition ($ locatorId )) {
84
+ $ locator = $ container ->getDefinition ($ locatorId );
85
+ $ locator ->replaceArgument (0 , array_replace ($ locator ->getArgument (0 ), [
86
+ 'enqueue.client.default.queue_consumer ' => new Reference ('enqueue.client.default.queue_consumer ' ),
87
+ 'enqueue.client.default.driver ' => new Reference ('enqueue.client.default.driver ' ),
88
+ 'enqueue.client.default.delegate_processor ' => new Reference ('enqueue.client.default.delegate_processor ' ),
89
+ 'enqueue.client.default.producer ' => new Reference ('enqueue.client.default.producer ' ),
90
+ ]));
91
+ }
87
92
88
- if ($ container ->hasDefinition ('enqueue.client.default.queue_consumer ' )) {
89
93
$ container ->getDefinition ('enqueue.client.default.queue_consumer ' )
90
- ->replaceArgument (2 , $ config ['consumption ' ]['idle_timeout ' ])
94
+ ->replaceArgument (2 , $ config ['consumption ' ]['idle_time ' ])
91
95
->replaceArgument (3 , $ config ['consumption ' ]['receive_timeout ' ])
92
96
;
93
97
}
0 commit comments