FlareStarter 文档
平台与运维

Cloudflare 已知坑(开发须知)

  1. per-request 绑定:Drizzle/auth 每请求新建(用 createDb(env.DB)),绝不跨请求复用。
  2. 禁用 process.env:一律从 src/lib/env.tsenv(来自 cloudflare:workers)取;ESLint 已强制(no-restricted-properties)。
  3. CPU-ms 预算:图像等重计算监控/降级。
  4. Node 兼容compatibility_flags: ["nodejs_compat"] 已开;需要的 polyfill 在此登记。
  5. (阶段2)Stripe webhook:取原始 body + Web Crypto 异步验签,非 Node crypto。
  6. (阶段1)Better-Auth 后台任务:关键 session 写入走同步路径 + 重试,避免响应后 D1 瞬时错误挂起。

Cron Triggers(定时任务)

CF 的定时任务通过 worker 的 scheduled handler 实现,而非 fetch。本模板已接好一个参考实现:

  • 调度:wrangler.jsonctriggers.crons(默认每日 03:00 UTC)。命名环境 staging/production 不继承顶层配置,各自重复声明(与 bindings 同理)。
  • 入口:src/worker.tsscheduled()(与 fetch 并列,一同被 Sentry.withSentry 包裹)。
  • 逻辑:src/features/maintenance/cleanup.tsrunCleanup() —— 删过期 session / verification token + 陈旧 better-auth 限流行。now 注入以便测试(cleanup.workers.test.ts)。
  • 扩展:把你自己的周期任务(发摘要邮件、按天清理 配额计数等)加进 scheduled()runCleanup() 即可。

本地手动触发(无需等到点):

pnpm dev                          # 另开一个终端
curl "http://localhost:3000/cdn-cgi/handler/scheduled"   # miniflare 暴露的 scheduled 触发端点

注意:Cron Triggers 在 CF 免费档可用(零成本);Queues 才需付费档。所以"定时轮询"类需求用 cron,无需 Queues。

On this page