DependencyInjection/Compiler/RegisterSonataListenersPass.php
public function process(ContainerBuilder $container)
    {
        if(!($container->hasDefinition($this->queueEngineService) || !$container->hasAlias($this->queueEngineService))
            && !($container->hasDefinition($this->dispatcherService) || $container->hasAlias($this->dispatcherService))
        )
        {
            return;
        }

        $dispatcher = $container->getDefinition($this->dispatcherService);

        foreach($container->findTaggedServiceIds($this->jobTag) as $id => $tags)
        {
            foreach($tags as $tag)
            {
                // workaround
                $dispatcher->addMethodCall(
                    'addListener',
                    array(
                        $tag['type'],
                        array(new ServiceClosureArgument(new Reference($this->queueEngineService)), 'process')
                    )
                );
            }
        }
    }
public function process(ContainerBuilder $container)
    {
        if(!($container->hasDefinition($this->queueEngineService) || !$container->hasAlias($this->queueEngineService))
            && !($container->hasDefinition($this->dispatcherService) || $container->hasAlias($this->dispatcherService))
        )
        {
            return;
        }

        $dispatcher = $container->getDefinition($this->dispatcherService);

        foreach($container->findTaggedServiceIds($this->jobTag) as $id => $tags)
        {
            foreach($tags as $tag)
            {
                // workaround
                $dispatcher->addMethodCall(
                    'addListener',
                    array(
                        $tag['type'],
                        array(new ServiceClosureArgument(new Reference($this->queueEngineService)), 'process')
                    )
                );
            }
        }
    }
{@inheritdoc}