Job Queue

Job Queues are used when you need to do any of the following:

If you do not need either of these features, you can ignore Queues altogether: new jobs are by default assigned to the "Default" Queue, which does not limit job execution in any way.

Job Queues and Job Groups are not related or interconnected in any way: jobs in the same Queue can belong to different Groups, and vice-versa.

Unlike Job Groups, Job Queues do not have a hierarchical structure, because Queues are not used to organize jobs but rather to control their execution.

Limiting Job Execution

In some situations you may need to limit the number of jobs that run at the same time, or prevent certain jobs from running at the same time.

For example, you have three jobs that are CPU-intensive, and allowing more than one of them to run at the same time degrades performance on your server to an unacceptable level. Or you may have a set of jobs that all need exclusive access to a system resource such as a data file or hardware device, so you need to ensure that only one of these jobs is executing at any given time.

A Job Queue allows you to enforce limits like this without the need to set up conditions among the jobs or to rely on careful sequencing of the jobs' schedules. Instead, you assign the related jobs to a single Queue. In the Queue's properties, you can set a limit on the number of jobs from the Queue that can run concurrently.

Whenever a job is triggered (either automatically or through manual submission) it is sent to its assigned Queue for execution. If the Queue's execution limit has already been reached, the new execution request is queued with other pending execution requests, and the job is not executed until all jobs ahead of it in the Queue have been executed. Each time a job finishes, the next job in the Queue is started.

Each Job is assigned a Priority when you configure it. This Priority determines the order in which queued jobs will be executed: when an execution request is queued, the request goes ahead of any other jobs that are already in the queue but have a lower priority.

Holding and Releasing Queues

Like a Job, a Queue can be held to prevent execution of jobs within the queue.

To hold or release a Queue, you can either

Distributed Scheduling

When you use the Distributed Scheduling features of adTempus, the Job Queue determines which computer(s) the jobs in the Queue will be executed on. See the Distributed Scheduling Page of the Queue properties for more information.