配置参考
触发器
用一个 triggers 数组集中声明路由、队列、定时与邮件触发器。
所有可能触发 Worker 运行的操作,现在集中在配置里的单一 triggers 块中,而不是像以往那样零散地分布在配置文件的各处。
基本形态
import { defineConfig, triggers } from "cf/config";
export default defineConfig({
worker: {
name: "example-worker",
compatibilityDate: "2026-09-27",
triggers: [
triggers.fetch({ pattern: "example.com/*" }),
triggers.scheduled({ schedule: "0 * * * *" }),
triggers.queue({ name: "jobs", maxBatchSize: 10 }),
triggers.email({ addresses: ["support@example.com"] }),
],
},
});
可用的触发器
| Builder | 触发条件 |
|---|---|
triggers.fetch({ pattern }) |
匹配路由模式的请求 |
triggers.scheduled({ schedule }) |
cron 计划,例如 0 * * * * |
triggers.queue({ name, maxBatchSize }) |
队列消费 |
triggers.email({ addresses }) |
Email Routing 地址收到的邮件 |
triggers.connect(...) |
原始套接字连接 |
triggers 是数组,因此一个 Worker 可以同时声明多种触发方式,顺序与写法都一目了然。
为什么集中声明
在 Wrangler 中,路由写在 routes,cron 写在 triggers.crons,队列消费者写在 queues.consumers,邮件写在别处。要弄清「什么会让这个 Worker 跑起来」,必须在整个文件里来回找。
改成数组之后,这个问题变成一次阅读:
triggers: [
triggers.fetch({ pattern: "api.example.com/*" }),
triggers.queue({ name: "orders-jobs", maxBatchSize: 10 }),
triggers.scheduled({ schedule: "0 * * * *" }),
],