⏱ 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.