Skip to content

指南

Producer

ts
await env.QUEUE.send({ hello: "world" }, { delaySeconds: 5 });
await env.QUEUE.sendBatch(
  [
    { body: { n: 1 } },
    { body: new TextEncoder().encode("raw"), contentType: "bytes" },
  ],
  { delaySeconds: 0 },
);
const m = await env.QUEUE.metrics();

单条最大 128 KiB,batch 最多 100 条 / 256 KiB 合计,delay 最大 86400 秒。无效 content type 与空 batch 是 TypeError;超大 batch / 非法 delay 是 Error。见 Queues JavaScript APIs

Consumer

ts
export default {
  async queue(batch: MessageBatch): Promise<void> {
    for (const message of batch.messages) {
      try {
        // ...
        message.ack();
      } catch {
        message.retry({ delaySeconds: 10 });
      }
    }
  },
} satisfies ExportedHandler;

Handler 成功且无显式 decision → ack;失败且无显式 decision → retry。open-compute.json 不使用 Wrangler consumers 数组。