phpsymfonyelasticsearchenqueue

The child node "transport" at path "enqueue_elastica" must be configured


In a Symfony 4.3 app with friendsofsymfony/elastica-bundle 5.1.0, enqueue/elastica-bundle 0.9.3, and enqueue/fs 0.9.12 installation of the latter ends with:

The child node "transport" at path "enqueue_elastica" must be configured.

I've tried multiple permutations in enqueue.yaml, including the only example I've found.

enqueue.yaml:

enqueue:
    default:
        transport: '%env(resolve:ENQUEUE_DSN)%'
        client: ~

.env includes:

###> enqueue/enqueue-bundle ###
ENQUEUE_DSN=null://
###< enqueue/enqueue-bundle 

Elasticsearch 6.8 is installed. Relatively simple indexes are readily created. A more complex index fails with running out of memory - thus the need for enqueue.

What is an appropriate configuration of enqueue.yaml for filesystem transport?

Edit: Curiously, the Ubuntu 18 Hyper-V virtual machine was able to slog through the populating without enqueue while the Windows host failed at 94200/156865.


Solution

  • The seemingly correct config has:

    .env:

    ...
    ###> enqueue/enqueue-bundle ###
    ENQUEUE_DSN="file://%VAR_DIR%/enqueue"
    ###< enqueue/enqueue-bundle ###
    

    This needed to accompanied by

    enqueue.yaml:

    enqueue:
        default:
            transport:
                dsn: '%env(resolve:ENQUEUE_DSN)%'
                path: '%kernel.project_dir%/var/queue' ## probably just a placeholder
            client: ~
    

    While the above avoids any errors being thrown it does not allow the populating to complete. I'm officially stuck. Time to look at reducing index complexity and multi index searches.