Expand description
Dispatching rules and rule engine for scheduling.
Provides priority-based dispatching rules (SPT, EDD, ATC, etc.) and a composable rule engine for multi-criteria task prioritization.
§Usage
use u_schedule::dispatching::{RuleEngine, SchedulingContext};
use u_schedule::dispatching::rules;
let engine = RuleEngine::new()
.with_rule(rules::Edd)
.with_tie_breaker(rules::Spt);
let context = SchedulingContext::at_time(0);
// let sorted = engine.sort(&tasks, &context);§References
- Pinedo (2016), “Scheduling: Theory, Algorithms, and Systems”, Ch. 4
- Haupt (1989), “A Survey of Priority Rule-Based Scheduling”
Modules§
- rules
- Built-in dispatching rules.
Structs§
- Rule
Engine - A composable rule engine for task prioritization.
- Scheduling
Context - Runtime scheduling state passed to dispatching rules.
Enums§
- Evaluation
Mode - How multiple rules are combined.
- TieBreaker
- How ties are broken after all rules are exhausted.
Traits§
- Dispatching
Rule - A dispatching rule that evaluates task priority.
Type Aliases§
- Rule
Score - Score returned by a dispatching rule.