2
2
3
3
namespace Enqueue \AsyncEventDispatcher \DependencyInjection ;
4
4
5
+ use Enqueue \AsyncEventDispatcher \AsyncProcessor ;
6
+ use Enqueue \AsyncEventDispatcher \Commands ;
5
7
use Symfony \Component \Config \FileLocator ;
6
8
use Symfony \Component \DependencyInjection \Alias ;
7
9
use Symfony \Component \DependencyInjection \ContainerBuilder ;
8
10
use Symfony \Component \DependencyInjection \Extension \Extension ;
9
11
use Symfony \Component \DependencyInjection \Loader \YamlFileLoader ;
12
+ use Symfony \Component \DependencyInjection \Reference ;
10
13
11
14
class AsyncEventDispatcherExtension extends Extension
12
15
{
13
- /**
14
- * {@inheritdoc}
15
- */
16
16
public function load (array $ configs , ContainerBuilder $ container )
17
17
{
18
18
$ config = $ this ->processConfiguration (new Configuration (), $ configs );
@@ -21,5 +21,17 @@ public function load(array $configs, ContainerBuilder $container)
21
21
22
22
$ loader = new YamlFileLoader ($ container , new FileLocator (__DIR__ .'/../Resources/config ' ));
23
23
$ loader ->load ('services.yml ' );
24
+
25
+ $ container ->register ('enqueue.events.async_processor ' , AsyncProcessor::class)
26
+ ->addArgument (new Reference ('enqueue.events.registry ' ))
27
+ ->addArgument (new Reference ('enqueue.events.event_dispatcher ' ))
28
+ ->addTag ('enqueue.processor ' , [
29
+ 'command ' => Commands::DISPATCH_ASYNC_EVENTS ,
30
+ 'queue ' => '%enqueue_events_queue% ' ,
31
+ 'queue_prefixed ' => false ,
32
+ 'exclusive ' => true ,
33
+ ])
34
+ ->addTag ('enqueue.transport.processor ' )
35
+ ;
24
36
}
25
37
}
0 commit comments