1 个不稳定版本

使用旧的Rust 2015

0.1.0 2018年2月20日

#30#background-jobs


用于 batch

MIT/Apache

7KB
112

Batch Crates.io API文档 Travis构建状态 Appveyor构建状态

一个用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);
}

更多示例可在GitHub上找到,并在指南中。

功能

  • codegen: (默认启用): 启用使用 job 过程宏。

许可证

根据您的要求,受以下任一许可证的约束

选择。

贡献

除非您明确声明,否则您提交给本作品的所有贡献,根据Apache-2.0许可证的定义,应按上述方式双许可,不附加任何额外的条款或条件。


lib.rs:

此软件包提供了一个Batch的 derive宏。

#[derive(Task)]

依赖项

约2MB
约47K SLoC