#队列 #postgresql #消息队列 #消息传递

已删除 pgmq-rs

Postgres 消息队列的 Rust 客户端

0.0.1-alpha 2023年1月5日

#62 in #消息队列

MIT 许可证

14KB
221

Postgres 消息队列

启动任何 PG 实例

docker run -d --name postgres -e POSTGRES_PASSWORD=postgres -p 5432:5432 postgres

初始化队列连接

use pgmq_rs::{Message, PGMQueue, PGMQueueConfig};

let qconfig = PGMQueueConfig {
    queue_name: "myqueue".to_owned(),
    url: "postgres://postgres:[email protected]:5432".to_owned(),
    vt: 30,
    delay: 0,
};

let queue: PGMQueue = qconfig.init().await;

创建队列

queue.create().await?;

发布消息

let msg = serde_json::json!({
    "foo": "bar"
});
let msg_id = queue.enqueue(&msg).await;

读取消息

当队列为空或所有消息都不可见时,不会返回消息。

读取消息将使其在可见性超时期间不可见。

let read_msg: Message = queue.read().await.unwrap();

删除消息

当你完成消息时,将其从队列中删除。

let deleted = queue.delete(&read_msg.msg_id).await;

依赖项

~13–26MB
~389K SLoC