Skip to content

Queue Server Configuration

Vladislav Alekseev edited this page Feb 1, 2022 · 23 revisions

This configuration is described by QueueServerConfiguration.swift source file. It defines how workers and queue operate.

You can generate sample queue configuration file and modify it up to your needs:

$ Emcee initQueueServerConfig --output /path/to/queue_config.json

Keys

globalAnalyticsConfiguration

This is an analytics configuration object

checkAgainTimeInterval

checkAgainTimeInterval defines how often workers poll the queue for buckets to execute. Use a value of 30 seconds.

queueServerDeploymentDestinations

Defines where a queue should be looked for, or where it should be started in case if it needs to be started.

This is an array with destinations. Emcee will first try to scan all destinations in order to find a running queue there. If no running queue will be located, it will try to start the new queue on destinations in specified order.

{
    "queueServerDeploymentDestinations": [
        {
            "host": "example.com",
            "port": 22,
            "username": "ssh login",
            "password": "ssh password",
            "remoteDeploymentPath": "/path/to/working/dir/"
        }
    ]
}

workerDeploymentDestinations

This is an array of computers that will be used as Emcee workers. The computer that is running shared queue can also be Emcee worker.

Each element of this array describes how Emcee can reach the computer.

This is an array of Deployment Destination objects.

workerSpecificConfigurations

This is map from host name to Worker Specific Configuration object.

{
    "workerSpecificConfigurations": {
        "worker1.example.com": {"numberOfSimulators": 3, "maximumCacheSize": 0},
        "worker2.example.com": {"numberOfSimulators": 2},
    }
}

Note: currently worker id and host name are the same things.

queueServerTerminationPolicy

Defines when queue server will automatically terminate itself.

Detailed explanation is given on Queue Termination Policy page.

workerStartMode

Defines how workers are started:

  • queueStartsItsWorkersOverSshAndLaunchd: queue starts its workers automatically by using SSH and launchd. This is a default behavior.

  • unknownWayOfStartingWorkers: queue will not start workers, assuming something else will start them.

defaultWorkerConfiguration

A default worker configuration, kind of universal one. This is useful if you don't know how many workers are going to be started.

useOnlyIPv4

What address should be used when determining addresses for communication channels between worker and queue.