A Rust-based task scheduler for managing delayed and periodic tasks with dynamic control, supporting both synchronous and asynchronous execution.
delay-timer is a Rust task scheduler built on a time wheel algorithm, designed to manage timed and periodic tasks. It provides a flexible alternative to cron-like schedulers by supporting both synchronous and asynchronous task execution, along with dynamic runtime task management.
Rust developers building applications that require scheduled, delayed, or recurring tasks, such as background job processors, periodic data backups, or timed automation scripts.
Developers choose delay-timer for its dynamic task management, allowing tasks to be added, canceled, or removed at runtime without restarting the scheduler, and its flexibility in supporting both async/await and synchronous execution with optional runtimes like smol or tokio.
Time-manager of delayed tasks. Like crontab, but synchronous asynchronous tasks are possible scheduling, and dynamic add/cancel/remove is supported.
Tasks can be added, canceled, or removed at runtime without restarting the scheduler, as shown with methods like `insert_task`, `remove_task`, and `cancel_with_wait` in the examples.
Supports both asynchronous and synchronous task execution, with optional integration for smol or tokio runtimes, allowing developers to choose concurrency models based on their application needs.
Enables scheduling using cron expressions (e.g., '@secondly') or specific dates and times, providing familiar and powerful timing controls beyond simple intervals.
Allows configuration of the maximum number of parallel tasks, preventing resource exhaustion and improving application stability, as demonstrated with `set_maximum_parallel_runnable_num`.
The README's To Do List indicates that automatic termination of threads and tasks when the DelayTimer is dropped is not yet implemented, which could lead to resource leaks in long-running applications.
Task states are not persisted across application restarts, requiring manual re-adding of tasks after shutdowns or failures, which adds complexity for stateful scheduling needs.
Built-in features for monitoring task execution, such as detailed logs or metrics, are minimal, with 'report-for-server' listed as a future enhancement in the README.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.