Crates.io | actix-jobs |
lib.rs | actix-jobs |
version | 0.1.7 |
source | src |
created_at | 2023-09-13 20:43:20.680032 |
updated_at | 2023-09-14 20:00:51.377868 |
description | A simple job scheduler for Actix |
homepage | |
repository | |
max_upload_size | |
id | 971932 |
size | 25,244 |
A simple job scheduler for Actix.
cargo add actix-jobs
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.
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...
}