apps/docs/content/guides/queues/api.mdx
When you create a Queue in Supabase, you can choose to create helper database functions in the pgmq_public schema. This schema exposes operations to manage Queue Messages to consumers client-side, but does not expose functions for creating or dropping Queues.
Database functions in pgmq_public can be exposed via Supabase Data API so consumers client-side can call them. Visit the Quickstart for an example.
pgmq_public.pop(queue_name)Retrieves the next available message and deletes it from the specified Queue.
queue_name (text): Queue namepgmq_public.send(queue_name, message, sleep_seconds)Adds a Message to the specified Queue, optionally delaying its visibility to all consumers by a number of seconds.
queue_name (text): Queue namemessage (jsonb): Message payload to sendsleep_seconds (integer, optional): Delay message visibility by specified seconds. Defaults to 0pgmq_public.send_batch(queue_name, messages, sleep_seconds)Adds a batch of Messages to the specified Queue, optionally delaying their availability to all consumers by a number of seconds.
queue_name (text): Queue namemessages (jsonb[]): Array of message payloads to sendsleep_seconds (integer, optional): Delay messages visibility by specified seconds. Defaults to 0pgmq_public.archive(queue_name, message_id)Archives a Message by moving it from the Queue table to the Queue's archive table.
queue_name (text): Queue namemessage_id (bigint): ID of the Message to archivepgmq_public.delete(queue_name, message_id)Permanently deletes a Message from the specified Queue.
queue_name (text): Queue namemessage_id (bigint): ID of the Message to deletepgmq_public.read(queue_name, sleep_seconds, n)Reads up to "n" Messages from the specified Queue with an optional "sleep_seconds" (visibility timeout).
queue_name (text): Queue namesleep_seconds (integer): Visibility timeout in secondsn (integer): Maximum number of Messages to read