Job Scheduler
The scheduler assigns print jobs to printers, factoring in filament compatibility, availability, and priority. It replaces manual "which printer should I send this to?" decisions with a scoring system that optimizes your farm's throughput.
The scheduler runs on demand, not on a timer: each run happens when an Operator or Admin clicks Run Scheduler on the Jobs page (or calls POST /api/scheduler/run). Jobs added after a run wait in the queue until the next run, or until you place them on the Timeline.
Color-Match Scoring
When a job specifies a filament color, the scheduler scores each available printer based on what's currently loaded. A printer with the exact color loaded scores highest, avoiding unnecessary filament swaps. Printers with compatible material but different colors score lower.
This means your jobs route to the right printer without manual intervention -- especially useful in farms with dozens of machines running different colors.
Time-Window Scheduling
Assign print windows to individual printers to control when they run:
- Operating hours -- restrict a printer to only accept jobs during work hours
- Shift scheduling -- allocate specific printers to specific time blocks
- Maintenance windows -- block out time for routine upkeep
Blackout Hours
Blackout hours prevent the scheduler from starting new jobs during defined periods. Set them in Settings → General → Scheduler Settings (default 22:30 to 05:30, evaluated in UTC); a saved change applies from the next scheduler run. Common uses:
- Overnight quiet hours in shared spaces
- Scheduled maintenance windows
- Holidays or facility closures
Blackout hours only prevent new jobs from starting. A print already in progress will continue through a blackout period.
Queue Management
The job queue supports drag-and-drop reordering in the web UI (operator/admin). The queue is ordered by priority first, so dragging reorders jobs within a priority level; change a job's priority to move it ahead of another level.
Priority Levels
Jobs have five priority levels, shown as color-coded P1–P5 badges:
| Priority | Behavior |
|---|---|
| P1 (Highest) | Scheduled before every lower level |
| P2 (High) | Scheduled after P1 |
| P3 (Normal) | Default queue position |
| P4 (Low) | Yields to P1–P3 |
| P5 (Lowest) | Yields to every other level |
The API also accepts the named levels urgent (P1), high (P2), normal (P3) and low (P4).
Load Balancing
When multiple printers qualify for a job (same filament, same capabilities), the scheduler distributes work across them to prevent any single machine from being overloaded while others sit idle.
The balancing considers:
- Current queue depth per printer
- Printer availability (online, idle, not in blackout)
- Recent utilization
For best results, keep your filament slot assignments up to date. The scheduler relies on accurate "what's loaded" data to make color-match decisions.
See Also
- Order Management & Fulfillment — "Schedule Jobs" generates jobs from order BOMs
- Mid-Print Controls — pause, resume, and plate cleared during active jobs