Periodic Do

This is a library for running periodic tasks:

Project status

Usable, but has rough edges, evaluate before using it in production.

Example Usage

```rust use tokio;

[tokio::main]

async fn main() -> Result<(), Error> { let (sender, receiver) = tokio::sync::mpsc::channel(1000);

let unfinishedjobs = loadunfinishedjobsfrom_database().await?;

// Start the scheduler let capacity = periodicdo::Capacity { maxrunningjobs: 10, sweepsleepsecondsdefault: 5, sweepsleepsecondsmin: 1, sweepsleepsecondsmax: 60, }; tokio::spawn(async move { periodicdo::loopforever( capacity, receiver, unfinished_jobs ).await });

loop { // T implements Job trait let sometask: T = getataskfromsomewhere().await; sender.send(some_task).await }

Ok(()) } ```