SuperAPI AI 工具集

inngest-nextjs-patterns

编程与开发

查看项目

更新于 10-16 03:46

技能介绍

Inngest + Next.js Patterns 是一套模板与约定,用于在 Next.js App Router 项目中基于 Inngest 构建事件驱动、可持久化的后台任务。它遵循 Inngest 官方文档的写法(去中心化的 eventType() 模式、kebab-case 稳定函数 ID、幂等步骤),使重试、重放和并发控制能真正生效。

适用时机:首次在 Next.js 中配置 Inngest(客户端、路由处理器、首个函数);新增后台任务、webhook 处理器或定时任务;定义新领域事件;编排需跨进程重启的持久化多步工作流;审查现有时的事件命名、步骤幂等与函数 ID;从 setTimeout、队列库或 cron 服务迁移。

使用方式:首次使用先阅读 references/conventions.md,理解事件命名、函数 ID 稳定、每个 step.run 必须幂等的原理。再按需选模板:client.ts.template 生成 src/inngest/client.ts;route-handler.ts.template 生成 src/app/api/inngest/route.ts;event.ts.template 生成 src/inngest/events/{domain}.ts;function.ts.template 生成标准事件触发函数;function-cron.ts.template 生成 cron 定时函数;function-fan-out.ts.template 生成扇出编排函数。各模板文件顶部有参数表,替换后使用。新函数需登记到 src/inngest/functions/index.ts 注册表,路由处理器会读取它。

关键约定:事件名形如 domain/entity.verb_past(如 app/user.created);函数 ID 为稳定 kebab-case,部署后不可改名,它是持久化状态键;步骤 ID 同理,改名会在重放时重跑该步;每个 step.run 必须可安全重试,若调用会改变状态的第三方 API 需传幂等键。开发服务器:npx inngest-cli@latest dev,UI 在 http://localhost:8288,并在 .env.local 设 INNGEST_DEV=1。

项目结构假设使用含 src/ 的 App Router;如布局不同(无 src/ 或 Pages Router),可在 config.json 覆盖输出路径,首次使用需检查其字段是否填写。限制:资料未提供收费、价格或效果信息,暂未提供。