2个版本

使用旧Rust 2015

0.1.1 2018年9月24日
0.1.0 2018年9月22日

#13 in #redis-queue

MIT 协议

28KB
468

brokkr

Build Status Crates.io

🚧 进行中 🚧

brokkr 是一个简单的Rust应用程序分布式任务队列。它由 Redis 支持,并深受 rq 的启发。

动机

我需要将一个分布式任务队列集成到Rust网络应用程序中,到目前为止我已经找到了 batch-rsoppgave,它们解决了类似的问题。然而,我想要一个不使用RabbitMQ,并提供了类似于 rq (即监控和保存结果)的解决方案,这是我在Python中的常用工具之一。

结果是 brokkr。它由Redis服务器支持,并且最终比像 ost(Ruby)和 oppgave 这样的推/拉队列复杂一些,因为它提供了一种 Worker 实现方式,当前工作进程和任务的观察性(wip,您已经可以直接查询Redis服务器了)以及从另一个进程/机器获取任务结果的能力。这些功能是以在网络故障面前略微降低可靠性为代价的,与简单的 可靠队列模式 相比。

brokkr 并不是rq的移植版。最初,我旨在仅实现特定用例所需的功能(见 TODO 中计划的功能),以保持事情简单。更复杂的功能(如作业依赖)将被考虑,但不是初始路线图的一部分。

安装 & 使用

要使用brokkr,请在您的Cargo.toml中添加以下内容

[dependencies]
brokkr = "0.1"

示例

TODO

在此期间,请参阅 示例 和文档。

开发

运行测试

cargo test

由于测试会对Redis后端执行一些实际工作,因此需要它可用。如果您已安装docker,可以轻松运行开发redis服务器,方法如下

docker run --name redis -p 6379:6379 -d redis:alpine

如果您在不是 redis://127.0.0.1/ 的url / 端口上运行redis服务器,请在运行测试之前设置 BROKKR_URL 环境变量。

BROKKR_URL=redis://[:password@]host:port/db cargo test

依赖关系

~9.5MB
~193K SLoC