Scheduler¶
Plane: Intelligence Plane
Purpose¶
Resource allocation and time optimization. The Scheduler assigns tasks to resources based on availability, proximity, capability, and policy constraints. It supports multiple scheduling modes to serve different application patterns.
Responsibilities¶
Assign tasks from the Planner to specific devices/resources
Optimize assignments for time, distance, and load balancing
Support one-time, recurring, and conditional scheduling
Consult Policy Service for scheduling priorities and constraints
Query DeviceAdmin for resource availability and capabilities
Scheduling Modes¶
Mode |
Trigger |
Use Case |
Example App |
|---|---|---|---|
One-time |
Order/event arrives |
Single execution |
WES (order-driven) |
Recurring (cron) |
Time schedule |
Periodic execution |
ClearJanitor (nightly clean) |
Conditional |
Event condition met |
Reactive execution |
Future (sensor threshold) |
Key Entities¶
Entity |
Description |
|---|---|
Assignment |
A task bound to a specific resource at a specific time |
Schedule |
A recurring pattern (cron expression + task template) |
ResourceSlot |
A time window of resource availability |
API Surface¶
Operation |
Description |
|---|---|
|
Create a one-time task assignment |
|
Create a recurring schedule |
|
List schedules |
|
Query assignments |
|
Cancel a recurring schedule |
Dependencies¶
Service |
Relationship |
|---|---|
Planner |
Receives tasks to be assigned |
DeviceAdmin |
Queries resource capabilities and availability |
Marie |
Proximity-based resource selection |
Policy Service |
Scheduling priorities, time-of-day restrictions |
Consumed By¶
Consumer |
Usage |
|---|---|
Execution Manager |
Receives assignments to execute |
Applications |
Create and manage schedules |