A lightweight message queue extension for Postgres.
Setup pgx
.
bash
cargo install --locked cargo-pgx
cargo pgx init
Then, clone this repo and change into this directory.
git clone git@github.com:CoreDB-io/coredb.git
cd coredb/extensions/pgmq/
Run the dev environment
bash
cargo pgx run pg14
sql
CREATE EXTENSION pgmq;
sql
SELECT pgmq_create('my_queue');
```sql pgmq=# SELECT pgmqenqueue('myqueue', '{"foo": "bar"}');
1
```
Reads a single message from the queue. ```sql pgmq=# SELECT pgmqread('myqueue');
{"message":{"foo":"bar"},"msg_id":1,"vt":"2023-01-01T13:54:15.646554"} ```
If the queue is empty, or if all messages are currently invisible, it will immediately return None. ```sql pgmq=# SELECT pgmqread('myqueue');
```
Read a message and immediately delete it from the queue. Returns None
if the queue is empty.
```sql
pgmq=# SELECT pgmqpop('myqueue');
{"message":{"foo":"bar"},"msg_id":1,"vt":"2023-01-01T13:55:15.967657"} ```
Delete a message with id 1
from queue named my_queue
.
```sql
pgmq=# select pgmqdelete('myqueue', 1);
t ```