Skip to content

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


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