4个稳定版本
2.3.0 | 2020年12月6日 |
---|---|
2.2.0 | 2020年12月6日 |
2.1.1 | 2021年3月3日 |
2.1.0 | 2020年12月5日 |
1234在数据库接口中
30KB
549 行
RSMQ在异步Rust中的实现
RSMQ移植到异步Rust。RSMQ是一个简单的Redis队列系统,适用于任何Redis v2.6+。它包含与原版相同的函数,可在https://github.com/smrchy/rsmq中找到。
此crate在实现中使用异步。如果要在同步代码中使用它,可以使用tokio的"block_on"方法。使用异步是为了简化代码,并允许JS代码的一对一移植。
安装
查看https://crates.io/crates/rsmq_async_lite
异步执行器
从版本0.16开始,redis依赖项支持tokio和async_std执行器。默认情况下,在建立连接时将猜测您正在使用什么。您可以通过检查redis的Cargo.toml文件中的async-std-comp
和tokio-comp
标志来选择一个或另一个。
示例
use rsmq_async_lite::Rsmq;
#[tokio::main]
async fn main() {
let mut rsmq = Rsmq::<String>::new(Default::default())
.await
.expect("connection failed");
rsmq.create_queue("myqueue", None, None, None)
.await
.expect("failed to create queue");
rsmq.send_message("myqueue", &"testmessage".to_string(), None)
.await
.expect("failed to send message");
let message = rsmq
.receive_message("myqueue", None)
.await
.expect("cannot receive message");
if let Some(message) = message {
rsmq.delete_message("myqueue", &message.id).await;
}
}
依赖项
~10MB
~209K SLoC