SuperAPI AI 工具集

inngest-events

设计与创作

查看项目

更新于 10-15 22:38

技能介绍

用途:该技能用于掌握 Inngest 的事件设计与投递模式,事件是 Inngest 的基础,用于设计健壮的事件 schema、实现幂等、使用扇出模式并处理系统事件。内容聚焦 TypeScript,Python 或 Go 需参考 Inngest 官方文档,但核心概念通用。

主要能力:事件负载为 JSON 对象,必填 name(事件类型,触发函数)与 data(任意嵌套 JSON),可选 id(去重 ID)、ts(Unix 毫秒时间戳,用于延迟投递或保持顺序)、v(schema 版本)。命名推荐对象-动作模式 domain/noun.verb,如 billing/invoice.paid、user/profile.updated,使用过去时与点号层级,避免 payment、user_update 这类不清晰写法。幂等:设置 id 可防止事件重复投递导致重复处理,去重窗口为首次接收后 24 小时,ID 应具体到事件类型和实例,如 invoice-paid-${invoiceId}。ts 可用于未来调度或按时间顺序处理。扇出:一个事件可触发多个独立函数,函数彼此独立、并行执行、可选择性重放,支持跨服务与跨语言。

使用方式:通过 client 创建 Inngest 实例,使用 inngest.send() 发送单个或批量事件(上限 512kb),在函数内应使用 step.sendEvent() 以获得可靠性与去重。可结合 step.waitForEvent 等待下游事件,用表达式 event 表示原始触发事件、async 表示等待匹配的新事件。系统事件包括 inngest/function.failed、finished、cancelled,可用于失败处理与告警。

适用场景:设计事件驱动工作流、服务解耦、扇出、重试与失败监控、Webhook 事件接入等。

限制:未提供具体收费、价格、平台支持或性能数据;生产环境需设置 INNGEST_EVENT_KEY 环境变量(资料如此说明);批次发送大小上限为 512kb;幂等去重窗口 24 小时;示例以 TypeScript 为主。