Crafting — UnityIntegration / Scheduler¶
Folder Overview¶
This page documents the scheduler used by CraftingService.
CraftingScheduler decides which queued jobs are allowed to start based on configured concurrency rules.
What Lives Here¶
CraftingScheduler— selection of startable jobs- configuration for global and per-station limits
Purpose¶
The scheduler answers:
Which queued jobs can start right now?
It ensures:
- global concurrency limits are respected
- per-station limits are respected
- queue order is considered
Usage Guidance¶
Concurrency¶
- global cap (
maxParallelJobs) - per-station caps (default + overrides)
A job can start only if both global and station capacity allow it.
Selection Behaviour¶
- evaluates jobs in list order
- skips non-queued jobs
- selects jobs while capacity remains
Later jobs may start before earlier ones if earlier jobs are blocked by station limits.
Important Notes¶
- scheduler is stateless and side-effect free
- does not mutate jobs or emit events
- behaviour depends on current runtime state and limits
Not for Production Use¶
This component does not handle:
- job execution
- progress or timing
- delivery or persistence
These are handled by CraftingService.
Related Documentation¶
- Crafting UnityIntegration (runtime layer)
- Crafting Core (job lifecycle and execution)
Design Notes¶
- separates policy from orchestration
- keeps job start logic deterministic and testable
Consumers should interact with CraftingService rather than the scheduler directly.