Overview
The build queue is used to store pending build requests for projects. When a build for a project is triggered, a build request is created and added to this queue.
Queuing Behaviour
The build queue is used to ensure that only a single build is active at any time for each project. It is possible for two different projects to both have active builds, but a single project will have at most one active build. Some requests in the build queue may also be replaceable. If another request to build the same project from the same source arrives, it will replace the existing request. This is used, for example, to ensure multiple builds do not queue up for each change detected in a project when changelist isolation is disabled. This prevents the queue size from growing unbounded, without losing any important build request information.
Dispatching
When a build is free to occur (all previous builds for the project are complete), the request is dispatched from the build queue. The build becomes active, and corresponding recipe requests are added to the recipe queue for each stage in the project.
Cancelling Builds
A queued build can be cancelled by clicking the "cancel" link in the corresponding row of the build queue. If the cancel request arrives before the build is commenced, it will be removed from the queue.