Skip to content

Job Queue ​

The automation engine uses three separate job queues, each with a distinct purpose. Understanding the difference between them is important for configuring parallelism, diagnosing bottlenecks, and setting up Autodesk Vault integration.

Primary Queue (Hangfire) ​

The primary job queue is powered by Hangfire and is the main execution system for all workflows. When a workflow is triggered it is placed on this queue and picked up by a background worker on the automation server.

Parallelism is controlled per automation server via appsettings.json. Each server can be configured independently, allowing you to scale horizontally by running multiple automation servers with different worker counts.

json
"HangfireSettings": {
  "DefaultQueueWorkerCount": 5
}

With a worker count of 5, up to five workflows can run simultaneously on that server. Increase this value to allow more concurrent work, keeping in mind that higher values require more CPU and memory. Set it according to the capacity of the machine hosting the automation engine.

Monitoring the Queue ​

URLPurpose
<MinuteView Server>/AutomationsQueueFull Hangfire dashboard — all jobs, states, and retry counts.

Job States ​

StateDescription
QueuedWaiting to be picked up by a worker.
ProcessingCurrently executing.
SucceededCompleted successfully.
FailedEncountered an error — check the workflow log for details.
DeletedManually removed or expired.

Execution Modes ​

Most workflows run through the primary queue. However some modules require the workflow to be set to run imediatly, such as Configurator workflows, which always execute immediately because they must return a result synchronously to update on-screen controls in real time — they cannot wait in a queue.


Serialisation Queue ​

The serialisation queue protects tasks that must only run one at a time, even when the primary queue is configured for high parallelism.

If a task is marked as serialised and five workflows all reach that task simultaneously, all five enter the serialisation queue and execute one at a time in order. Once a serialised task completes, its result is passed back to the originating workflow and that workflow continues normally.

Any workflow containing a serialised task will pause at that task until the queue clears. This is intentional — it prevents race conditions on shared resources such as a file, a database record, or an external system that cannot handle concurrent writes.

When designing workflows, be aware that serialised tasks are a potential bottleneck. If throughput matters, minimise the number of workflows that share the same serialised task at the same time.


Autodesk Vault Job Queue ​

The Vault job queue is a native Autodesk Vault feature. The automation engine does not own or manage this queue — it polls it at a configurable interval and processes jobs whose names match a workflow in the engine.

How It Works ​

  1. The automation engine connects to the Vault master database via a SQL account and checks for pending jobs at the configured polling interval.
  2. When a pending job is found whose name matches a workflow, the engine uses the Vault SDK to reserve that job directly in Vault.
  3. The workflow executes.
  4. On completion the engine writes the result (success or failure with a message) back to the Vault job queue.

Reserving a job through the SDK requires an Autodesk account that holds a valid Vault licence. Without a licenced account the reservation call will be rejected by Vault.

Configuration ​

Set the polling interval and concurrent job limit in appsettings.json:

json
"VaultJobProcessing": {
  "MaxConcurrentJobs": 2,
  "PollingIntervalSeconds": 5
}

Required Service Accounts ​

Three service accounts must be configured in the Console before the Vault job queue will function:

AccountPurpose
Vault SQL AccountConnects directly to the Vault master database to poll for pending jobs.
Autodesk AccountAn Autodesk identity with an associated Vault licence. Required to open the Vault SDK connection and reserve jobs.
Autodesk Vault AccountThe Vault user account used to perform Vault operations within the workflow.

All three accounts are configured under Console → Service Accounts. Once they are in place, set the polling interval and concurrency in appsettings.json and the automation engine will begin picking up Vault jobs automatically.

Tentech