Does Your Job Scheduler Make Good Decisions? The Importance of Job Queues

There are a few qualities you want everyone working within your company to have. They should be able to prioritize a workload, utilize resources effectively, and shift tactics based on a changing situation. These traits are as important in your workload automation solution as they are in your employees.

What is a Job Queue?

At some point your enterprise job scheduler decides to run a job. This could be because it’s a certain time of day or because some other requirement has been met. The scheduler then puts the job into a job queue, where it waits until the scheduler decides to execute it.

There are many reasons the job may not be executed immediately. There may not currently be resources available to run the job, and other jobs have a higher priority. Maybe the agent that is supposed to run the job has gone down.

A less advanced job scheduler would simply line up the jobs to execute in the order they were submitted. But this might mean that important jobs are overlooked or skipped altogether while less critical processes run smoothly.

Why are Job Queues Important?

Job queues are essential in a workload automation tool for three main reasons. First, they allow the scheduler to run jobs in the order of priority. You tell the job scheduler how important each task is, and it makes sure that your prioritization trumps the order of submission.

Secondly, it’s essential that a job scheduler can limit the number of jobs that are executing at the same time. The agent may not have the processing power to run all your tasks at once, so again, it has to prioritize intelligently.

Sometimes the agent or the network might be down altogether. In that case, you don’t want to risk your jobs being missed because of a temporary glitch. When the equipment is working again, your jobs should be still on the queue and ready to run.

Advanced Job Queue Features

To achieve the three key benefits of job queues—prioritizing jobs, limiting the number of jobs running, and reacting to agents going down—there are a few features your enterprise job scheduling tool will need to have. One is a hold and release function. If your agent has to go down for an hour, for example, none of the jobs on that queue will be released until the system has been rebooted.

Sometimes priorities change. There might be a job on the queue that isn’t scheduled to execute soon, but 2 p.m. is fast approaching and you need the job to be done by then. A good job scheduler will let you alter a job’s priority setting even after it has been added to the queue.

Semaphores and mutexes allow you to set those aforementioned limits on how many jobs run at once. An example of a process where this would come in very handy is if you were using a database that could only handle ten connections at a time. You would want to set up a queue specifically for jobs using that database. The queue would only allow ten jobs to run at once—when one of the ten jobs finished, a new one could execute.

Another feature you want your enterprise job scheduling software to include is priority gating. For example, there may be times during the day when a lot of jobs are being submitted by end users. These jobs are generally not the highest priority and can put stress on the system, so you want to delay them until after working hours. In this case, at 8 a.m. you could raise a priority gate that only allows jobs to execute if they are over a certain priority rating. At 5 p.m., the gate could disappear and let the lower priority tasks through.

If you plan to make changes to priority gates throughout the day, you will want to be able to schedule those changes within your enterprise job scheduler as well. You don’t want to have to change priority settings manually on a regular basis.