5个版本
0.2.2 | 2022年6月11日 |
---|---|
0.2.1 | 2022年5月30日 |
0.2.0 | 2022年5月30日 |
0.1.1 | 2022年4月25日 |
0.1.0 | 2022年4月25日 |
#65 in #persistence
21KB
414 行代码(不含注释)
simple_jobs
非常简单的持久化作业
一个简单的Tokio任务的包装器,任务可以保存到选择的后端,并且可以查询它们的状态。
例如,该包提供了将任务保存到文件系统的实现。
定义后端
特质 [Job
] 需要函数 Job::save
和 Job::load
来保存和恢复结构 JobInfo
。
使用 FSJob
实现
结构 FSJob
通过从文件系统保存和恢复作业信息来实现特质 [Job
]。每个作业都会得到一个独特的文件,由独特的作业ID构建。
示例
async fn example() -> std::io::Result<()> {
let job: FSJob<u16, MyError> = FSJob::new("/tmp".into());
let id = job.submit(|id, job| async move {
Ok(0u16)
})?;
let info = job.load(id)?;
println!("Job status: {:?}", info.status);
Ok(())
}
许可证:MIT
lib.rs
:
非常简单的持久化作业
一个简单的Tokio任务的包装器,任务可以保存到选择的后端,并且可以查询它们的状态。
例如,该包提供了将任务保存到文件系统的实现。
定义后端
特质 [Job
] 需要函数 Job::save
和 Job::load
来保存和恢复结构 JobInfo
。
使用 FSJob
实现
结构 FSJob
通过从文件系统保存和恢复作业信息来实现特质 [Job
]。每个作业都会得到一个独特的文件,由独特的作业ID构建。
示例
async fn example() -> std::io::Result<()> {
let job: FSJob<u16, MyError> = FSJob::new("/tmp".into());
let id = job.submit(|id, job| async move {
Ok(0u16)
})?;
let info = job.load(id)?;
println!("Job status: {:?}", info.status);
Ok(())
}
依赖
~5–16MB
~194K SLoC