1 个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年2月20日 |
---|
#30 在 #background-jobs
用于 batch
7KB
112 行
Batch
一个用Rust编写的后台作业库。
Batch允许您通过向代理发送消息将作业延迟到工作进程,这是一个类型安全的库,它优先考虑安全性而不是性能,以最大限度地减少风险和避免错误。它是完全异步的,基于tokio
运行时。
安装
最小Rust版本 1.31
将以下内容添加到您的 Cargo.toml
[dependencies]
batch = "0.2"
只有当您使用Rust 2015版时
然后将其添加到您的crate根目录
extern crate batch;
Batch应用示例
use batch::job;
use batch_rabbitmq::{queues, Connection};
use std::path::PathBuf;
use tokio::prelude::Future;
queues! {
Transcoding {
name = "transcoding",
bindings = [
self::transcode,
]
}
}
#[job(name = "batch-example.transcode")]
fn transcode(path: PathBuf) {
// ...
}
fn main() {
let fut = Connection::build("amqp://guest:guest@localhost:5672/%2f")
.declare(Transcoding)
.connect()
.and_then(|mut client| {
let job = transcode("./video.mp4".into());
Transcoding(job).dispatch(&mut client)
})
.map_err(|e| eprintln!("An error occured: {}", e));
tokio::run(fut);
}
功能
codegen
: (默认启用): 启用使用job
过程宏。
许可证
根据您的要求,受以下任一许可证的约束
- Apache License 2.0 (LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
选择。
贡献
除非您明确声明,否则您提交给本作品的所有贡献,根据Apache-2.0许可证的定义,应按上述方式双许可,不附加任何额外的条款或条件。
lib.rs
:
此软件包提供了一个Batch的 derive宏。
#[derive(Task)]
依赖项
约2MB
约47K SLoC