{"repo":"stav121/tasklet","free":true,"listed":false,"github":"https://github.com/stav121/tasklet","clone":"git clone https://github.com/stav121/tasklet.git","description":"⏱️ An asynchronous task scheduling library written in Rust","language":"Rust","stars":97,"topics":["tasklet","rust","crates","scheduler","open-source","asychronous","tokio"],"license":"MIT","category":"workflow-automation","readme_excerpt":"An asynchronous task scheduling library written in Rust About tasklet is a task scheduling library written in Rust. It is built over tokio runtime and utilizes green threads in order to run tasks asynchronously. Dependencies library version ----------- --------- cron 0.15.0 chrono 0.4.42 log 0.4.29 tokio 1.48.0 futures 0.3.31 thiserror 2.0.17 How to use this library In your Cargo.toml add: Upgrading from 0.2.x? See the migration notes below — task steps are now async . Example Find more examples in the examples folder. Task steps are asynchronous : every step is a closure that returns a future, so it can .await real work (I/O, timers, network calls) without blocking the runtime. Graceful shutdown scheduler.run() normally loops forever. To stop it cleanly, grab a SchedulerHandle with scheduler.handle() before running and call shutdown() from anywhere — the current round finishes, the tasks are drained and run() returns: You can also drive the shutdown with any future via scheduler.run until(future) — for example a timer or an OS signal. Timeouts, retries and lifecycle callbacks Tasks can be made resilient with a few optional builder settings (all non-breaking, added in 0.3.1): - Timeout ( .timeout ) bounds each individual step attempt; a step that exceeds it is cancelled and treated as a (retryable) failure. - Retry ( .retry ) re-attempts a step that returns TaskStepStatusErr::Error (or times out). Use RetryPolicy::fixed or RetryPolicy::exponential , optionally with .with jitt","default_branch":null,"files":null,"tree":[],"storefront":"/r/stav121","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/stav121/tasklet/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}