pgmq

pgmq : A lightweight message queue. Like AWS SQS and RSMQ but on Postgres.

Overview

IDExtensionPackageVersionCategoryLicenseLanguage
2880
pgmq
pgmq
1.11.0
FEAT
PostgreSQL
SQL
AttributeHas BinaryHas LibraryNeed LoadHas DDLRelocatableTrusted
--s-d--
No
Yes
No
Yes
no
no
Relationships
Schemaspgmq
Need By
pg_later
vectorize
See Also
kafka_fdw
pg_cron
pg_task
pg_net
pg_background
pgagent
pg_jobmon

Packages

TypeRepoVersionPG Major CompatibilityPackage PatternDependencies
EXT
PIGSTY
1.11.0
18
17
16
15
14
pgmq-
RPM
PIGSTY
1.11.0
18
17
16
15
14
pgmq_$v-
DEB
PIGSTY
1.11.0
18
17
16
15
14
postgresql-$v-pgmq-
Linux / PGPG18PG17PG16PG15PG14
el8.x86_64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
el8.aarch64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
el9.x86_64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
el9.aarch64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
el10.x86_64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
el10.aarch64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
d12.x86_64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
d12.aarch64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
d13.x86_64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
d13.aarch64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
u22.x86_64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
u22.aarch64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
u24.x86_64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
u24.aarch64
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PIGSTY 1.11.0
PackageVersionOSORGSIZEFile URL
pgmq_181.11.0el8.x86_64pigsty38.3 KiBpgmq_18-1.11.0-1PIGSTY.el8.x86_64.rpm
pgmq_181.11.0el8.x86_64pgdg54.0 KiBpgmq_18-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_181.10.1el8.x86_64pgdg44.5 KiBpgmq_18-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_181.11.0el8.aarch64pigsty38.2 KiBpgmq_18-1.11.0-1PIGSTY.el8.aarch64.rpm
pgmq_181.11.0el8.aarch64pgdg53.9 KiBpgmq_18-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_181.10.1el8.aarch64pgdg44.4 KiBpgmq_18-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_181.11.0el9.x86_64pigsty36.4 KiBpgmq_18-1.11.0-1PIGSTY.el9.x86_64.rpm
pgmq_181.11.0el9.x86_64pgdg51.4 KiBpgmq_18-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_181.10.1el9.x86_64pgdg42.7 KiBpgmq_18-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_181.11.0el9.aarch64pigsty36.4 KiBpgmq_18-1.11.0-1PIGSTY.el9.aarch64.rpm
pgmq_181.11.0el9.aarch64pgdg51.3 KiBpgmq_18-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_181.10.1el9.aarch64pgdg42.6 KiBpgmq_18-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_181.11.0el10.x86_64pigsty36.5 KiBpgmq_18-1.11.0-1PIGSTY.el10.x86_64.rpm
pgmq_181.11.0el10.x86_64pgdg51.6 KiBpgmq_18-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_181.10.1el10.x86_64pgdg42.8 KiBpgmq_18-1.10.1-1PGDG.rhel10.1.noarch.rpm
pgmq_181.11.0el10.aarch64pigsty36.5 KiBpgmq_18-1.11.0-1PIGSTY.el10.aarch64.rpm
pgmq_181.11.0el10.aarch64pgdg51.5 KiBpgmq_18-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_181.10.1el10.aarch64pgdg42.8 KiBpgmq_18-1.10.1-1PGDG.rhel10.1.noarch.rpm
postgresql-18-pgmq1.11.0d12.x86_64pigsty26.0 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~bookworm_amd64.deb
postgresql-18-pgmq1.11.0d12.aarch64pigsty26.0 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~bookworm_arm64.deb
postgresql-18-pgmq1.11.0d13.x86_64pigsty26.0 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~trixie_amd64.deb
postgresql-18-pgmq1.11.0d13.aarch64pigsty26.0 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~trixie_arm64.deb
postgresql-18-pgmq1.11.0u22.x86_64pigsty26.5 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~jammy_amd64.deb
postgresql-18-pgmq1.11.0u22.aarch64pigsty26.5 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~jammy_arm64.deb
postgresql-18-pgmq1.11.0u24.x86_64pigsty26.4 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~noble_amd64.deb
postgresql-18-pgmq1.11.0u24.aarch64pigsty26.4 KiBpostgresql-18-pgmq_1.11.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pgmq_171.11.0el8.x86_64pigsty38.3 KiBpgmq_17-1.11.0-1PIGSTY.el8.x86_64.rpm
pgmq_171.11.0el8.x86_64pgdg54.0 KiBpgmq_17-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_171.10.1el8.x86_64pgdg44.5 KiBpgmq_17-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_171.11.0el8.aarch64pigsty38.2 KiBpgmq_17-1.11.0-1PIGSTY.el8.aarch64.rpm
pgmq_171.11.0el8.aarch64pgdg53.9 KiBpgmq_17-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_171.10.1el8.aarch64pgdg44.4 KiBpgmq_17-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_171.11.0el9.x86_64pigsty36.4 KiBpgmq_17-1.11.0-1PIGSTY.el9.x86_64.rpm
pgmq_171.11.0el9.x86_64pgdg51.4 KiBpgmq_17-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_171.10.1el9.x86_64pgdg42.7 KiBpgmq_17-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_171.11.0el9.aarch64pigsty36.4 KiBpgmq_17-1.11.0-1PIGSTY.el9.aarch64.rpm
pgmq_171.11.0el9.aarch64pgdg51.3 KiBpgmq_17-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_171.10.1el9.aarch64pgdg42.6 KiBpgmq_17-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_171.11.0el10.x86_64pigsty36.5 KiBpgmq_17-1.11.0-1PIGSTY.el10.x86_64.rpm
pgmq_171.11.0el10.x86_64pgdg51.6 KiBpgmq_17-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_171.10.1el10.x86_64pgdg42.8 KiBpgmq_17-1.10.1-1PGDG.rhel10.1.noarch.rpm
pgmq_171.11.0el10.aarch64pigsty36.5 KiBpgmq_17-1.11.0-1PIGSTY.el10.aarch64.rpm
pgmq_171.11.0el10.aarch64pgdg51.5 KiBpgmq_17-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_171.10.1el10.aarch64pgdg42.8 KiBpgmq_17-1.10.1-1PGDG.rhel10.1.noarch.rpm
postgresql-17-pgmq1.11.0d12.x86_64pigsty26.0 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~bookworm_amd64.deb
postgresql-17-pgmq1.11.0d12.aarch64pigsty26.0 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~bookworm_arm64.deb
postgresql-17-pgmq1.11.0d13.x86_64pigsty26.0 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~trixie_amd64.deb
postgresql-17-pgmq1.11.0d13.aarch64pigsty26.0 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~trixie_arm64.deb
postgresql-17-pgmq1.11.0u22.x86_64pigsty26.5 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~jammy_amd64.deb
postgresql-17-pgmq1.11.0u22.aarch64pigsty26.5 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~jammy_arm64.deb
postgresql-17-pgmq1.11.0u24.x86_64pigsty26.4 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~noble_amd64.deb
postgresql-17-pgmq1.11.0u24.aarch64pigsty26.4 KiBpostgresql-17-pgmq_1.11.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pgmq_161.11.0el8.x86_64pigsty38.3 KiBpgmq_16-1.11.0-1PIGSTY.el8.x86_64.rpm
pgmq_161.11.0el8.x86_64pgdg54.0 KiBpgmq_16-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_161.10.1el8.x86_64pgdg44.5 KiBpgmq_16-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_161.11.0el8.aarch64pigsty38.2 KiBpgmq_16-1.11.0-1PIGSTY.el8.aarch64.rpm
pgmq_161.11.0el8.aarch64pgdg53.9 KiBpgmq_16-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_161.10.1el8.aarch64pgdg44.4 KiBpgmq_16-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_161.11.0el9.x86_64pigsty36.4 KiBpgmq_16-1.11.0-1PIGSTY.el9.x86_64.rpm
pgmq_161.11.0el9.x86_64pgdg51.4 KiBpgmq_16-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_161.10.1el9.x86_64pgdg42.7 KiBpgmq_16-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_161.11.0el9.aarch64pigsty36.4 KiBpgmq_16-1.11.0-1PIGSTY.el9.aarch64.rpm
pgmq_161.11.0el9.aarch64pgdg51.3 KiBpgmq_16-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_161.10.1el9.aarch64pgdg42.6 KiBpgmq_16-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_161.11.0el10.x86_64pigsty36.5 KiBpgmq_16-1.11.0-1PIGSTY.el10.x86_64.rpm
pgmq_161.11.0el10.x86_64pgdg51.6 KiBpgmq_16-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_161.10.1el10.x86_64pgdg42.8 KiBpgmq_16-1.10.1-1PGDG.rhel10.1.noarch.rpm
pgmq_161.11.0el10.aarch64pigsty36.5 KiBpgmq_16-1.11.0-1PIGSTY.el10.aarch64.rpm
pgmq_161.11.0el10.aarch64pgdg51.5 KiBpgmq_16-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_161.10.1el10.aarch64pgdg42.8 KiBpgmq_16-1.10.1-1PGDG.rhel10.1.noarch.rpm
postgresql-16-pgmq1.11.0d12.x86_64pigsty26.0 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~bookworm_amd64.deb
postgresql-16-pgmq1.11.0d12.aarch64pigsty26.0 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~bookworm_arm64.deb
postgresql-16-pgmq1.11.0d13.x86_64pigsty26.0 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~trixie_amd64.deb
postgresql-16-pgmq1.11.0d13.aarch64pigsty26.0 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~trixie_arm64.deb
postgresql-16-pgmq1.11.0u22.x86_64pigsty26.5 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~jammy_amd64.deb
postgresql-16-pgmq1.11.0u22.aarch64pigsty26.5 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~jammy_arm64.deb
postgresql-16-pgmq1.11.0u24.x86_64pigsty26.4 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~noble_amd64.deb
postgresql-16-pgmq1.11.0u24.aarch64pigsty26.4 KiBpostgresql-16-pgmq_1.11.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pgmq_151.11.0el8.x86_64pigsty38.3 KiBpgmq_15-1.11.0-1PIGSTY.el8.x86_64.rpm
pgmq_151.11.0el8.x86_64pgdg54.0 KiBpgmq_15-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_151.10.1el8.x86_64pgdg44.5 KiBpgmq_15-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_151.11.0el8.aarch64pigsty38.2 KiBpgmq_15-1.11.0-1PIGSTY.el8.aarch64.rpm
pgmq_151.11.0el8.aarch64pgdg53.9 KiBpgmq_15-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_151.10.1el8.aarch64pgdg44.4 KiBpgmq_15-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_151.11.0el9.x86_64pigsty36.4 KiBpgmq_15-1.11.0-1PIGSTY.el9.x86_64.rpm
pgmq_151.11.0el9.x86_64pgdg51.4 KiBpgmq_15-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_151.10.1el9.x86_64pgdg42.7 KiBpgmq_15-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_151.11.0el9.aarch64pigsty36.4 KiBpgmq_15-1.11.0-1PIGSTY.el9.aarch64.rpm
pgmq_151.11.0el9.aarch64pgdg51.3 KiBpgmq_15-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_151.10.1el9.aarch64pgdg42.6 KiBpgmq_15-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_151.11.0el10.x86_64pigsty36.5 KiBpgmq_15-1.11.0-1PIGSTY.el10.x86_64.rpm
pgmq_151.11.0el10.x86_64pgdg51.6 KiBpgmq_15-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_151.10.1el10.x86_64pgdg42.8 KiBpgmq_15-1.10.1-1PGDG.rhel10.1.noarch.rpm
pgmq_151.11.0el10.aarch64pigsty36.5 KiBpgmq_15-1.11.0-1PIGSTY.el10.aarch64.rpm
pgmq_151.11.0el10.aarch64pgdg51.5 KiBpgmq_15-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_151.10.1el10.aarch64pgdg42.8 KiBpgmq_15-1.10.1-1PGDG.rhel10.1.noarch.rpm
postgresql-15-pgmq1.11.0d12.x86_64pigsty26.0 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~bookworm_amd64.deb
postgresql-15-pgmq1.11.0d12.aarch64pigsty26.0 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~bookworm_arm64.deb
postgresql-15-pgmq1.11.0d13.x86_64pigsty26.0 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~trixie_amd64.deb
postgresql-15-pgmq1.11.0d13.aarch64pigsty26.0 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~trixie_arm64.deb
postgresql-15-pgmq1.11.0u22.x86_64pigsty26.5 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~jammy_amd64.deb
postgresql-15-pgmq1.11.0u22.aarch64pigsty26.5 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~jammy_arm64.deb
postgresql-15-pgmq1.11.0u24.x86_64pigsty26.4 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~noble_amd64.deb
postgresql-15-pgmq1.11.0u24.aarch64pigsty26.4 KiBpostgresql-15-pgmq_1.11.0-1PIGSTY~noble_arm64.deb
PackageVersionOSORGSIZEFile URL
pgmq_141.11.0el8.x86_64pigsty38.3 KiBpgmq_14-1.11.0-1PIGSTY.el8.x86_64.rpm
pgmq_141.11.0el8.x86_64pgdg54.0 KiBpgmq_14-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_141.10.1el8.x86_64pgdg44.5 KiBpgmq_14-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_141.11.0el8.aarch64pigsty38.2 KiBpgmq_14-1.11.0-1PIGSTY.el8.aarch64.rpm
pgmq_141.11.0el8.aarch64pgdg53.9 KiBpgmq_14-1.11.0-1PGDG.rhel8.10.noarch.rpm
pgmq_141.10.1el8.aarch64pgdg44.4 KiBpgmq_14-1.10.1-1PGDG.rhel8.10.noarch.rpm
pgmq_141.11.0el9.x86_64pigsty36.4 KiBpgmq_14-1.11.0-1PIGSTY.el9.x86_64.rpm
pgmq_141.11.0el9.x86_64pgdg51.4 KiBpgmq_14-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_141.10.1el9.x86_64pgdg42.7 KiBpgmq_14-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_141.11.0el9.aarch64pigsty36.4 KiBpgmq_14-1.11.0-1PIGSTY.el9.aarch64.rpm
pgmq_141.11.0el9.aarch64pgdg51.3 KiBpgmq_14-1.11.0-1PGDG.rhel9.7.noarch.rpm
pgmq_141.10.1el9.aarch64pgdg42.6 KiBpgmq_14-1.10.1-1PGDG.rhel9.7.noarch.rpm
pgmq_141.11.0el10.x86_64pigsty36.5 KiBpgmq_14-1.11.0-1PIGSTY.el10.x86_64.rpm
pgmq_141.11.0el10.x86_64pgdg51.6 KiBpgmq_14-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_141.10.1el10.x86_64pgdg42.8 KiBpgmq_14-1.10.1-1PGDG.rhel10.1.noarch.rpm
pgmq_141.11.0el10.aarch64pigsty36.5 KiBpgmq_14-1.11.0-1PIGSTY.el10.aarch64.rpm
pgmq_141.11.0el10.aarch64pgdg51.5 KiBpgmq_14-1.11.0-1PGDG.rhel10.1.noarch.rpm
pgmq_141.10.1el10.aarch64pgdg42.8 KiBpgmq_14-1.10.1-1PGDG.rhel10.1.noarch.rpm
postgresql-14-pgmq1.11.0d12.x86_64pigsty26.0 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~bookworm_amd64.deb
postgresql-14-pgmq1.11.0d12.aarch64pigsty26.0 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~bookworm_arm64.deb
postgresql-14-pgmq1.11.0d13.x86_64pigsty26.0 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~trixie_amd64.deb
postgresql-14-pgmq1.11.0d13.aarch64pigsty26.0 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~trixie_arm64.deb
postgresql-14-pgmq1.11.0u22.x86_64pigsty26.5 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~jammy_amd64.deb
postgresql-14-pgmq1.11.0u22.aarch64pigsty26.5 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~jammy_arm64.deb
postgresql-14-pgmq1.11.0u24.x86_64pigsty26.4 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~noble_amd64.deb
postgresql-14-pgmq1.11.0u24.aarch64pigsty26.4 KiBpostgresql-14-pgmq_1.11.0-1PIGSTY~noble_arm64.deb

Source

pig build pkg pgmq;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pgmq;		# install via package name, for the active PG version

pig install pgmq -v 18;   # install for PG 18
pig install pgmq -v 17;   # install for PG 17
pig install pgmq -v 16;   # install for PG 16
pig install pgmq -v 15;   # install for PG 15
pig install pgmq -v 14;   # install for PG 14

Create this extension with:

CREATE EXTENSION pgmq;

Usage

pgmq: A lightweight message queue for PostgreSQL

PGMQ is a lightweight message queue built on PostgreSQL, providing guaranteed “exactly once” delivery within a visibility timeout, FIFO queues, topic-based routing, and message archival.

CREATE EXTENSION pgmq;

Create a Queue

SELECT pgmq.create('my_queue');

Send Messages

-- Send a single message (returns msg_id)
SELECT * FROM pgmq.send(
  queue_name => 'my_queue',
  msg        => '{"foo": "bar"}'
);

-- Send with delay (invisible for 5 seconds)
SELECT * FROM pgmq.send(
  queue_name => 'my_queue',
  msg        => '{"foo": "bar"}',
  delay      => 5
);

-- Send a batch of messages
SELECT pgmq.send_batch(
  queue_name => 'my_queue',
  msgs       => ARRAY['{"a":1}','{"b":2}','{"c":3}']::jsonb[]
);

Read Messages

Read messages and make them invisible for a visibility timeout (in seconds):

SELECT * FROM pgmq.read(
  queue_name => 'my_queue',
  vt         => 30,    -- visibility timeout in seconds
  qty        => 2      -- number of messages to read
);

Pop a Message

Read and immediately delete a message:

SELECT * FROM pgmq.pop('my_queue');

Delete a Message

SELECT pgmq.delete('my_queue', 6);

Archive a Message

Move a message from the queue to the archive table for long-term retention:

SELECT pgmq.archive(queue_name => 'my_queue', msg_id => 2);

-- Archive multiple messages
SELECT pgmq.archive(queue_name => 'my_queue', msg_ids => ARRAY[3, 4, 5]);

Inspect archived messages:

SELECT * FROM pgmq.a_my_queue;

Drop a Queue

SELECT pgmq.drop_queue('my_queue');

Visibility Timeout

Messages become invisible after being read for the duration of the visibility timeout (vt). If not deleted or archived within that time, they become visible again for other consumers. Set vt greater than the expected processing time.

Key Functions

FunctionDescription
pgmq.create(queue_name)Create a new queue
pgmq.send(queue_name, msg, [delay])Send a message
pgmq.send_batch(queue_name, msgs)Send multiple messages
pgmq.read(queue_name, vt, qty)Read messages with visibility timeout
pgmq.pop(queue_name)Read and delete a message atomically
pgmq.delete(queue_name, msg_id)Delete a message
pgmq.archive(queue_name, msg_id/msg_ids)Archive message(s)
pgmq.drop_queue(queue_name)Delete a queue
Last updated on