cronoq-core
The sans-IO scheduling engine behind cronoq. Core is a
deterministic state machine with no clock, threads, I/O or unsafe: every call takes the current
time, and the engine answers with actions (dispatch, abort, scale, persist, publish).
It implements priority classes with aging, deadline urgency (EDF), fixed-start reservations with worker holds, cron schedules, DAG dependencies, leases, retries, semaphores and token buckets, bounded queues with shedding, queue-pressure autoscaling and windowed metrics, with O(classes + log n) dispatch.
use *;
let mut core: = new;
core.submit.unwrap;
let Some = core.poll_action else ;
core.complete;
Use it directly to build a custom driver (another runtime, a simulator) or to test
scheduling policies under virtual time. Most applications should use the
cronoq crate instead.
Licensed under MIT or Apache-2.0, at your option.