Cloudflare Queues 可使用 Wrangler(Cloudflare 开发者平台的命令行接口,包括 Workers、R2 和其他开发者产品)进行配置。
每个生产者和消费者 Worker 都有一个 Wrangler 配置文件,用于指定环境变量、触发器和资源(如队列)。要启用 Worker 与资源之间的通信,必须在 Worker 项目的 Wrangler 文件中设置绑定(binding)。
使用以下选项配置队列。
以下队列级别设置可使用 Wrangler 配置:
npx wrangler queues update <QUEUE-NAME> --delivery-delay-secs 60 --message-retention-period-secs 3000--delivery-delay-secsnumberoptional- 已发布消息在投递给消费者之前延迟的时长。
- 必须在 0 到 86400(24 小时)之间。
- 默认为 0。
--message-retention-period-secsnumberoptional- 消息在 Queue 上保留的时长。
- 默认为 345600(4 天)。
- 必须在 60 到 1209600(14 天)之间
生产者是向一个或多个队列写入的 Cloudflare Worker。生产者可以通过 HTTP 接受消息、在处理请求时异步写入消息,和/或在 Durable Objects 内向队列写入。任何 Worker 都可以写入队列。
要向队列生产消息,请在 Wrangler 文件中设置绑定。当 Worker 要向队列发送消息时,应使用这些选项。
{
"queues": {
"producers": [
{
"queue": "my-queue",
"binding": "MY_QUEUE"
}
]
}
}[[queues.producers]]
queue = "my-queue"
binding = "MY_QUEUE"-
queuestring- 队列名称。
-
bindingstring- 绑定名称,即 JavaScript 变量名。
要从一个或多个队列消费消息,请在 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"请参阅限制以查看每个选项的最大值。
-
queuestring- 队列名称。
-
max_batch_sizenumberoptional- 每批允许的最大消息数。
- 默认为
10条消息。
-
max_batch_timeoutnumberoptional- 等待批次满的最大秒数。
- 默认为
5秒。
-
max_retriesnumberoptional- 消息失败或调用
retryAll()时的最大重试次数。 - 默认为
3次重试。
- 消息失败或调用
-
dead_letter_queuestringoptional- 若消息处理失败至少
max_retries次,则发送到的另一个队列的名称。 - 若未定义
dead_letter_queue,反复处理失败的消息最终将被丢弃。 - 若不存在指定名称的队列,将自动创建。
- 若消息处理失败至少
-
max_concurrencynumberoptional
队列可以有基于 HTTP 的消费者从队列拉取消息。该消费者可以是任何可通过 Internet 通信的 HTTP 服务。请参阅 Pull 消费者 了解如何配置 pull 消费者。