Crates.io | job-runner |
lib.rs | job-runner |
version | 1.0.1 |
source | src |
created_at | 2023-01-19 07:37:32.313014 |
updated_at | 2023-01-19 07:47:24.616662 |
description | Simple background job runner with configurable delays between job runs |
homepage | https://crates.io/crates/job-runner |
repository | https://github.com/EkardNT/job-runner |
max_upload_size | |
id | 762382 |
size | 30,279 |
A simple job runner library which gives each job a dedicated thread and allows for configurable delays between each invocation of the job's logic.
A program using the JobRunner utility is expected to have this basic outline:
use job_runner::{Job, JobRunner, fixed_delay};
fn main() {
// At program startup, create the JobRunner and register your tasks.
let mut job_runner = JobRunner::new();
job_runner.start(Job::new(
"cool_job",
fixed_delay(std::time::Duration::from_secs(5)),
my_cool_job));
// Do other things in your program...
// Then, when shutting down your program, signal all the job threads
// to stop running.
job_runner.stop_all();
// Maybe signal other parts of your program to gracefully shut down too...
// Finally (and optionally) wait for the job threads to actually exit.
job_runner.join_all();
}
fn my_cool_job() {
// Do cool things..
}