lool » sched is a utility library that provides a way to schedule tasks in
various ways. Supports std::thread and the tokio runtime
(as a feature flag).
Installation
This library is for internal use. And as such, it's only published privately.
cargo add lool --registry=lugit --features sched {sub-feature}
Sub-Features
Runtimes
At least one of the following features must be enabled to use this library.
Scheduling Rules
The default way to schedule tasks is to use a DateTime object. However, that means that the task
will only run once. To schedule tasks to run at specific intervals, you can use the following
features:
-
sched.rule-recurrent: Enables the "recurrent-rule" style for scheduling tasks.
-
sched.rule-cron: Enables the "cron-like" style for scheduling tasks
Planned Features
- sched.rule-pyschedule: Enables the python schedule-like style for scheduling tasks
- sched.thread-pool: Enables the
std::threadruntime support with a thread pool (like scheduled-thread-pool crate but usinglool's thread pool implementation)
Usage
Check the examples directory for usage examples:
Inspiration
This library is inspired by several other libraries, including:
- node-schedule: where the idea of recurring rules was taken from.
- tokio-schedule: tokio async scheduler
- schedule-rs: simple thread-based scheduler
- croner-rust: a croner parser for rust
- job_scheduler: another thread-based job scheduler for rust
- python's schedule: a simple python scheduler with a human-friendly API