3个版本 (稳定)
1.0.1 | 2023年1月19日 |
---|---|
0.1.0 | 2023年1月19日 |
#795 in 数学
24KB
348 行
这是一个简单的作业运行器库,为每个作业分配一个专用线程,并允许在调用作业逻辑之间配置延迟。
示例
使用JobRunner实用工具的程序应具有以下基本框架
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..
}
依赖项
~0–5.5MB
~15K SLoC