2个版本
使用旧Rust 2015
0.1.1 | 2018年9月24日 |
---|---|
0.1.0 | 2018年9月22日 |
#13 in #redis-queue
28KB
468 行
brokkr
🚧 进行中 🚧
brokkr
是一个简单的Rust应用程序分布式任务队列。它由 Redis 支持,并深受 rq 的启发。
动机
我需要将一个分布式任务队列集成到Rust网络应用程序中,到目前为止我已经找到了 batch-rs 和 oppgave,它们解决了类似的问题。然而,我想要一个不使用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