API接口
在 Supabase 中创建队列时,您可以选择在 pgmq_public
模式中创建辅助数据库函数。该模式向客户端消费者暴露了管理队列消息的操作,但不包含创建或删除队列的函数。
pgmq_public
中的数据库函数可以通过 Supabase 数据 API 暴露,使客户端消费者能够调用它们。请参阅快速入门获取示例。
pgmq_public.pop(queue_name)
检索下一条可用消息并从指定队列中删除它。
queue_name
(text
): 队列名称
pgmq_public.send(queue_name, message, sleep_seconds)
向指定队列添加消息,可选择延迟若干秒后才对所有消费者可见。
queue_name
(text
): 队列名称message
(jsonb
): 要发送的消息负载sleep_seconds
(integer
, 可选): 延迟消息可见性的秒数,默认为 0
pgmq_public.send_batch(queue_name, messages, sleep_seconds)
向指定队列批量添加消息,可选择延迟若干秒后才对所有消费者可用。
queue_name
(text
): 队列名称messages
(jsonb[]
): 要发送的消息负载数组sleep_seconds
(integer
, 可选): 延迟消息可见性的秒数,默认为 0
pgmq_public.archive(queue_name, message_id)
通过将消息从队列表移至队列的归档表来归档消息。
queue_name
(text
): 队列名称message_id
(bigint
): 要归档的消息ID
pgmq_public.delete(queue_name, message_id)
从指定队列中永久删除消息。
queue_name
(text
): 队列名称message_id
(bigint
): 要删除的消息ID
pgmq_public.read(queue_name, sleep_seconds, n)
从指定队列中读取最多"n"条消息,可设置可选的"sleep_seconds"(可见性超时时间)。
queue_name
(text
): 队列名称sleep_seconds
(integer
): 可见性超时时间(秒)n
(integer
): 要读取的最大消息数量