Skip to main content

Module dispatching

Module dispatching 

Source
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§

RuleEngine
A composable rule engine for task prioritization.
SchedulingContext
Runtime scheduling state passed to dispatching rules.

Enums§

EvaluationMode
How multiple rules are combined.
TieBreaker
How ties are broken after all rules are exhausted.

Traits§

DispatchingRule
A dispatching rule that evaluates task priority.

Type Aliases§

RuleScore
Score returned by a dispatching rule.