Job Queue Config
Table of Contents
Note
This page refers to the Job Queue Config for RIO Education V3. If you are looking for V4, check here.
Job Queue Config
This article explains how the Job Queue Config metadata type works, what each setting controls, and how administrators can manage background job operations in RIO Education.
What Is This Configuration?
Some RIO Education operations — such as releasing grades at the end of a term or cloning unit offerings to a new term — involve processing large numbers of records and cannot run interactively without timing out. RIO Education handles these through a Job Queue: a background processing framework that breaks large operations into manageable batches and processes them asynchronously.
Each background operation runs in two phases:
- Generation — the system identifies all the work that needs to be done and divides it into individual job items. For example, for a grade release operation, the generation phase identifies every student whose grades need to be released and creates a job item for each one.
- Handling — the system processes each job item in batches. The handler performs the actual work — releasing the grade, cloning the offering, or processing the enrollment.
The Job Queue Config metadata type controls how each operation is configured: which background processes run each phase, and how many records are processed per batch.
Where to find it in Salesforce: Setup → Custom Metadata Types → Job Queue Config → Manage Records.
Configuration Options (Fields)
| Field | What it controls | Notes |
|---|---|---|
| Label | The display name of this configuration record. | Use a name that clearly identifies the background operation. |
| Active | Whether this job operation is enabled. Inactive records are excluded from all system lookups. | Uncheck to prevent this operation from running without removing its configuration. |
| Job Operation | A unique identifier for this operation. The system uses this value to look up the correct configuration when a job is triggered. | Must be unique across all Job Queue Config records. Do not change this value on existing records. |
| Job Generator Class Name | Identifies the background process responsible for the generation phase — dividing the operation into individual job items. Leave blank for operations that skip the generation phase and proceed directly to handling. | This field is managed by RIO Education. Do not modify it unless directed by RIO Education Support. |
| Job Generator Batch Size | The number of records processed per batch during the generation phase. A smaller value reduces the risk of hitting Salesforce processing limits; a larger value completes the generation phase faster. | Leave blank for operations with no generation phase. If you are experiencing timeout errors during job generation, try reducing this value. |
| Job Handler Class Name | Identifies the background process responsible for the handling phase — performing the actual work on each job item. | This field is managed by RIO Education. Do not modify it unless directed by RIO Education Support. |
| Job Handler Batch Size | The number of job items processed per batch during the handling phase. A smaller value reduces the risk of hitting Salesforce processing limits; a larger value completes the handling phase faster. | If you are experiencing errors during job handling — particularly for operations that involve complex record updates — try reducing this value. |
| Job Handler System Params | Advanced system parameters that modify how the handler phase executes. The only supported parameter is hasCallout, which must be set to {"hasCallout":true} for operations whose handler makes web service calls to external systems. |
Leave blank unless the handler for this operation requires external callouts. This field is managed by RIO Education — do not modify it unless directed by RIO Education Support. |
Default Configuration Records
These background operations are configured out of the box.
| Record | Operation | What it does | Generator Batch Size | Handler Batch Size |
|---|---|---|---|---|
| Grade_Release | Grade_Release | Releases final grades to students at the end of a teaching period. The generation phase identifies all students whose grades need to be released; the handler processes each release in batches. | 20 | 100 |
| Term_Offerings_Cloning | Term_Offerings_Cloning | Clones course offerings from one term to a new term. The generation phase identifies the offerings to copy; the handler performs each clone operation in batches. | 20 | 100 |
| Session_Booking_Generation | Session_Booking_Generation | Generates booking records for all relevant sessions within the term. The generation phase identifies sessions and session times to generate from; the handler creates the booking records in batches. | 100 | 5 |
| Course_Version_Course_Update | Course_Version_Course_Update | A one-off data update job to run when Course Versioning is enabled. The generation phase identifies the courses to update; the handler creates Course Header records and updates the courses in batches. | 100 | 100 |
| Program_Discipline_Course_Addition | Program_Discipline_Course_Addition | Adds a new course to relevant Program Disciplines and updates relevant credit tracking fields. The generation phase identifies Program Disciplines to update; the handler adds the course to the disciplines in batches. | 20 | 100 |
| Program_Transition | Program_Transition | Transitions a student to a different Program Plan. There is no generation phase; the handler updates the student's program enrollment to the new program plan structure in batches. | – | 5 |
Common Tasks
Adjusting batch sizes to resolve processing errors
If a background job is failing part-way through — particularly with errors related to Salesforce processing limits — reducing the batch size is often the first step to try.
- Go to Setup → Custom Metadata Types → Job Queue Config → Manage Records.
- Click Edit on the relevant operation record.
- Reduce the Job Handler Batch Size (or Job Generator Batch Size if the error occurs during generation). A common starting point is to halve the current value.
- Save the record and re-run the operation.
Note: Reducing the batch size means the overall job takes longer to complete, as more batches are needed to process the same number of records. Balance the batch size against your available processing window.
Disabling a background operation
- Go to Setup → Custom Metadata Types → Job Queue Config → Manage Records.
- Click Edit on the operation you want to disable.
- Uncheck Active and save.
The operation will no longer run when triggered. Any jobs already queued and in progress are not affected. Re-check Active to re-enable the operation.
Frequently Asked Questions
What is the difference between the generator batch size and the handler batch size?
These control two separate phases of the same operation. The generator batch size controls how many source records are scanned per batch when the system is identifying and queueing up work items. The handler batch size controls how many of those queued work items are actually processed per batch. For most operations, the handler does the heavier processing, so its batch size may need to be tuned more carefully. For operations with no generation phase, only the handler batch size applies.
How do I know if a batch size change has helped?
After adjusting the batch size and re-running the operation, monitor the job status in Salesforce (Setup → Apex Jobs) to check whether the batches complete without errors. If errors persist, consider reducing the batch size further or contacting RIO Education Support for assistance.
Can I create new Job Queue Config records for custom operations?
Job Queue Config records are tightly coupled to specific background process implementations managed by RIO Education. Creating a new configuration record without a corresponding implementation will have no effect. Contact RIO Education Support if you have a requirement for a new background operation.
What happens if a Job Queue Config record is missing or inactive when an operation is triggered?
The system will be unable to locate the configuration for the operation and will raise an error, preventing the job from running. Ensure the relevant record exists and is active before triggering any background operation.