队列

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