On this page
AX2545
Processing priority for scheduled jobs
Once a job reaches its start time, it is eligible to be processed by Scheduler, and joins the processing queue.
Scheduler has a configured number of threads that are used to process jobs. As a Scheduler thread becomes available, it takes the next job in the processing queue. The priority of jobs in the processing queue is determined by the combination of the job's priority category, and its Priority Elevation setting.
Each job has a priority category, based on how the job execution was initiated. The priority categories are as follows:
- Manual: The job was executed manually.
- Event Handler: The job was executed by a Scheduler event handler.
- Scheduled Job: The scheduled instance of the job results from an active scheduling rule.
- Subordinate Job: The job was generated as a subordinate job, from a currently executing job.
Manual jobs are highest priority and are processed first, and subordinate jobs are lowest priority and are processed last. Then within each category, jobs are processed according to their Priority Elevation setting.
For example, imagine that Scheduler has 2 available threads and the following jobs are eligible to be processed:
Job | Priority Category | Priority Elevation |
---|---|---|
A | Manual | Default |
B | Event Handler | Default |
C | Scheduled | Default |
D | Scheduled | Elevated |
- Scheduler will first execute jobs A and B, because those are the highest priority jobs based on their priority category.
- When the next thread becomes available, Scheduler will execute job D. Although job C may have entered the queue first, and the two jobs have the same priority category, job D's priority elevation is set to Elevated so it takes precedence within the category. If instead both jobs were set to Default, then job C would be executed first if it entered the queue before job D.
- When the next thread becomes available, Scheduler will execute job C.
NOTE: If a job's Priority Elevation is set to Interrupt, then it is run as soon as it is eligible, regardless of its priority category and regardless of whether any Scheduler threads are currently available to process the job. If no Scheduler threads are available, a new one is created to process the job, even if this temporarily exceeds the number of configured threads for the server.
Get more information and training resources: www.kaufmanhall.com |
Was this topic helpful? processing_priority.htm |
