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): 要读取的最大消息数量