Skip to main content

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
info

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:

PriorityBehavior
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
tip

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​