5 releases
0.1.7 | Sep 14, 2023 |
---|---|
0.1.6 | Sep 14, 2023 |
0.1.2 | Sep 14, 2023 |
0.1.1 | Sep 14, 2023 |
0.1.0 | Sep 13, 2023 |
#821 in HTTP server
62 downloads per month
9KB
121 lines
actix-jobs
A simple job scheduler for Actix.
Install
cargo add actix-jobs
Usage
Minimal example. For more information please refer to the Docs.
use actix_jobs::{Job, Scheduler, run_forever};
struct MyJob;
impl Job for MyJob {
fn cron(&self) -> &str {
"*/2 * * * * * *" // every two seconds
}
fn run(&mut self) {
println!("Sending an email to all our clients...");
}
}
#[actix_web::main]
async fn main() {
let mut scheduler = Scheduler::new();
scheduler.add(Box::new(MyJob));
run_forever(scheduler); // This will start the scheduler in a new thread.
// The rest of your program...
}
Information about the cron syntax.
Calling async functions inside run
This can be archieved via actix_rt::spawn
as shown bellow.
use actix_jobs::{Job, Scheduler, run_forever};
struct MyJob;
impl Job for MyJob {
fn cron(&self) -> &str {
"*/2 * * * * * *" // every two seconds
}
fn run(&mut self) {
actix_rt::spawn(async move {
actix_rt::time::sleep(Duration::from_millis(1000)).await;
println!("Some more async stuff...");
}
}
}
#[actix_web::main]
async fn main() {
let mut scheduler = Scheduler::new();
scheduler.add(Box::new(MyJob));
run_forever(scheduler); // This will start the scheduler in a new thread.
// The rest of your program...
}
Dependencies
~5–13MB
~149K SLoC