跳转到内容
搜索文档

配置 Queues

最后更新 查看 MarkdownAgent 设置

Cloudflare Queues 可使用 Wrangler(Cloudflare 开发者平台的命令行接口,包括 WorkersR2 和其他开发者产品)进行配置。

每个生产者和消费者 Worker 都有一个 Wrangler 配置文件,用于指定环境变量、触发器和资源(如队列)。要启用 Worker 与资源之间的通信,必须在 Worker 项目的 Wrangler 文件中设置绑定(binding)

使用以下选项配置队列。

队列配置

以下队列级别设置可使用 Wrangler 配置:

npx wrangler queues update <QUEUE-NAME> --delivery-delay-secs 60 --message-retention-period-secs 3000
  • --delivery-delay-secs numberoptional

    • 已发布消息在投递给消费者之前延迟的时长。
    • 必须在 0 到 86400(24 小时)之间。
    • 默认为 0。
  • --message-retention-period-secs numberoptional

    • 消息在 Queue 上保留的时长。
    • 默认为 345600(4 天)。
    • 必须在 60 到 1209600(14 天)之间

生产者 Worker 配置

生产者是向一个或多个队列写入的 Cloudflare Worker。生产者可以通过 HTTP 接受消息、在处理请求时异步写入消息,和/或在 Durable Objects 内向队列写入。任何 Worker 都可以写入队列。

要向队列生产消息,请在 Wrangler 文件中设置绑定。当 Worker 要向队列发送消息时,应使用这些选项。

{
	"queues": {
		"producers": [
			{
				"queue": "my-queue",
				"binding": "MY_QUEUE"
			}
		]
	}
}
[[queues.producers]]
queue = "my-queue"
binding = "MY_QUEUE"
  • queue string
    • 队列名称。
  • binding string
    • 绑定名称,即 JavaScript 变量名。

消费者 Worker 配置

要从一个或多个队列消费消息,请在 Wrangler 文件中设置绑定。当 Worker 要从队列接收消息时,应使用这些选项。

{
	"queues": {
		"consumers": [
			{
				"queue": "my-queue",
				"max_batch_size": 10,
				"max_batch_timeout": 30,
				"max_retries": 10,
				"dead_letter_queue": "my-queue-dlq"
			}
		]
	}
}
[[queues.consumers]]
queue = "my-queue"
max_batch_size = 10
max_batch_timeout = 30
max_retries = 10
dead_letter_queue = "my-queue-dlq"

请参阅限制以查看每个选项的最大值。

  • queue string
    • 队列名称。
  • max_batch_size numberoptional
    • 每批允许的最大消息数。
    • 默认为 10 条消息。
  • max_batch_timeout numberoptional
    • 等待批次满的最大秒数。
    • 默认为 5 秒。
  • max_retries numberoptional
    • 消息失败或调用 retryAll() 时的最大重试次数。
    • 默认为 3 次重试。
  • dead_letter_queue stringoptional
    • 若消息处理失败至少 max_retries 次,则发送到的另一个队列的名称。
    • 若未定义 dead_letter_queue,反复处理失败的消息最终将被丢弃。
    • 若不存在指定名称的队列,将自动创建。
  • max_concurrency numberoptional
    • 允许同时运行的最大并发消费者数。不设置此值时,调用数将扩展至当前支持的最大值
    • 有关消费者如何自动扩展的更多信息(尤其是在重试消息时),请参阅消费者并发

Pull 模式

队列可以有基于 HTTP 的消费者从队列拉取消息。该消费者可以是任何可通过 Internet 通信的 HTTP 服务。请参阅 Pull 消费者 了解如何配置 pull 消费者。

这篇文档对您有帮助吗?