3 个不稳定版本
0.20.0 | 2019 年 9 月 22 日 |
---|---|
0.18.1 | 2019 年 6 月 18 日 |
0.18.0 | 2019 年 6 月 11 日 |
#703 in 异步
每月 24 次下载
270KB
6K SLoC
zeebest 客户端
这是一个非官方的 Rust 客户端,用于 zeebe。Zeebe 是一个用于微服务的酷炫工作流协调器。通过启动本地 zeebe 代理并使用以下命令部署工作流来开始:
cargo运行 --包zeebest --示例deploy_workflow
API
此包提供了一个单一的 Client
类型,它包含大量与 zeebe 网关交互的方法。
大多数方法都是标准的 zeebe 操作。与其它方法相比,worker
方法更有趣。
工人可以通过处理器激活和处理作业。工人有一个最大并发作业数。工人将尽力只从代理请求最多数量的作业。每个作业处理器可以完成或失败一个作业。
目前工人只能手动轮询网关,因此您需要使用另一个系统定期处理作业。 tokio::Interval
在此方面做得相当不错。
let mut client = Client::new("127.0.0.1", 26500).unwrap();
let handler = move |activated_job| {
Ok(JobResult::Complete { variables: None })
};
let mut worker = zeebest::JobWorker::new(
"rusty-worker".to_string(),
"payment-service".to_string(),
Duration::from_secs(10).as_secs() as _,
2, // max number of concurrent jobs
PanicOption::FailJobOnPanic,
client,
handler,
);
// returns a stream of job results
let job_stream = worker.activate_and_process_job();
请参阅如何使用客户端的个别示例,或查看 完整的订单处理应用示例,该示例使用了许多客户端 API。
未来
与某些其他 zeebe 客户端不同,此客户端是 futures
首选的。所有方法都返回 futures 或 streams。必须在 futures 运行时(如 tokio
)上执行 futures 才能发生任何事情。
此包没有提供良好的开箱即用的运行时解决方案,因此您可能需要依赖 tokio
或您喜欢的 futures
运行时。
异步
此包现在支持 futures 0.3 (std::future)。此包不使用 async-await 语法,因为它需要在稳定 Rust 中构建。但由于一切都是 futures 0.3,因此 zeebest 可以在 nightly Rust 项目中使用 async-await。
Zeebe 版本
此crate将尝试与zeebe一起发布。这个库通过网关protobuf文件与zeebe耦合。此服务合同可能在小补丁之间变化,我相信如果此crate的次要版本与zeebe匹配,则此crate将最容易使用。
当zeebe稳定到1.0.0时,这可能不太重要。在此期间,使用与您的zeebe版本的小补丁版本相匹配的zeebest
版本,例如0.18.x。
开发中
确保protoc
在您的路径中。在此安装protobuf。许多示例需要运行本地zeebe代理。可以使用zeebe docker-compose项目轻松启动代理。
贡献?
提出一个问题并开始讨论!或者只是提交PR!你可能比我更了解这个。
贡献者
此项目使用由zeebe提供的protobuf文件,该文件采用Apache 2.0许可证。许可证包含在protobuf文件中。
这很大程度上受到了zeebe发布的python指南,zeebe-client-node-js的影响,因为javascript很棒,以及java客户端的完整性。
依赖项
~12MB
~202K SLoC