| 功能 | 限制 |
|---|---|
| Queues | 每个账户 10,000 个 |
| 消息大小 | 128 KB 1 |
| 消息重试 | 100 |
| 最大消费者批大小 | 100 条消息 |
每次 sendBatch 调用的最大消息数 |
100(或总计 256 KB) |
| 最大批等待时间 | 60 秒 |
| 每个队列的消息吞吐量 | 每秒 5,000 条消息 2 |
| 消息保留期 3 | 可配置最长 14 天。 |
| 每个队列的积压大小 4 | 25 GB |
| 并发消费者调用 | 250 仅 push 模式 |
| 消费者持续时间(挂钟时间) | 15 分钟 5 |
| 消费者 CPU 时间 | 可配置最长 5 分钟 |
visibilityTimeout(pull 队列) |
12 小时 |
delaySeconds(发送或重试时) |
24 小时 |
1 1 KB 按 1000 字节计算。消息可包含最多约 100 字节的内部元数据,计入总消息限制。
2 超过最大消息吞吐量会导致 send() 和 sendBatch() 方法抛出 Too Many Requests 异常,直到生产者降至限制以下。
3 队列中达到最大消息保留期的消息将被删除。Queues 不会删除同一队列中尚未达到该限制的消息。
4 达到此限制的单个队列在调用 send() 或 sendBatch() 时会收到 Storage Limit Exceeded 错误。
5 请参阅 Workers 限制。
Queue 消费者 Worker 是 Worker 脚本,与任何 Worker 一样共享相同的每次调用 CPU 限制。请注意,CPU 时间是主动处理时间,而非等待网络请求、存储调用或其他一般 I/O 的时间。
默认情况下,每个消费者 Worker 调用的最大 CPU 时间为 30 秒,但可在 Wrangler 配置中通过设置 limits.cpu_ms 来提高:
{
// ...rest of your configuration...
"limits": {
"cpu_ms": 300000, // 300,000 milliseconds = 5 minutes
},
// ...rest of your configuration...
}[limits]
cpu_ms = 300_000要了解更多关于 CPU 时间和限制的信息,请参阅 Workers 文档。
挂钟时间(也称为 wall-clock time)是从调用开始到结束的总经过时间,包括等待网络请求、I/O 和其他异步操作所花费的时间。这与 CPU 时间不同,后者仅衡量 CPU 主动执行代码所花费的时间。
下表总结了开发者平台上不同类型 Worker 调用的挂钟时间限制:
| 调用类型 | 挂钟时间限制 | 详细信息 |
|---|---|---|
| 传入 HTTP 请求 | 无限制 | 客户端保持连接时没有硬性限制。仍在流式传输响应正文的 Worker 保持活动。waitUntil() 在响应或断开连接后将执行延长最多 30 秒。 |
| Cron Triggers | 15 分钟 | 计划 Worker 每次调用最长挂钟时间为 15 分钟。 |
| Queue 消费者 | 15 分钟 | 每次消费者调用最长挂钟时间为 15 分钟。 |
| Durable Object alarm handler | 15 分钟 | Alarm handler 调用最长挂钟时间为 15 分钟。 |
| Durable Objects(RPC / HTTP) | 无限制 | 调用方保持与 Durable Object 连接时没有硬性限制。Durable Objects 在请求、RPC 调用、响应流、WebSocket 或待处理 I/O 进行中时保持活动。 |
| Workflows(每步) | 无限制 | 每个步骤可以运行无限挂钟时间。各个步骤受配置的 CPU 时间限制约束。 |