SuperAPI AI 工具集

inngest-flow-control

编程与开发

查看项目

更新于 10-16 06:19

技能介绍

用途:为 Inngest 函数配置流控(flow control),管理资源、防止系统过载、规避外部 API 限流并提升可靠性。资料以 TypeScript 为主,Python/Go 需参考 Inngest 官方文档,核心概念通用。

快速决策:限制同时运行数用 Concurrency;随时间摊开运行用 Throttling;超过 N 次后阻止用 Rate Limiting;等待活动停止后只跑一次用 Debounce;某 key 同时只跑一个用 Singleton;按组处理事件用 Batching;区分重要性用 Priority。

主要能力与配置:

  • Concurrency:limit 限制正在执行的 step(非函数运行),等待 step.sleep/step.waitForEvent 不计入;支持 key 实现多租户隔离;scope: "account" 可跨函数共享配额。
  • Throttling:limit、period(1s 到 7d)、burst、key,控制函数启动速率;与并发不同,节流限制启动,并发限制 step 执行。
  • Rate Limiting:limit、period、key,超出后丢弃事件(节流是延迟)。
  • Debounce:period、key、timeout,用最后一次事件,适合快速变化的用户输入或嘈杂 webhook。
  • Priority:run 表达式,按动态数据让部分运行提前。
  • Singleton:key、mode 为 skip(保留当前运行)或 cancel(取消并用最新事件)。
  • Batching:maxSize、timeout、key,按批处理事件数组。
  • 可组合使用,例如同时配置 throttle、concurrency 与 priority 实现公平的 AI 处理。

使用方式:在 inngest.createFunction 的配置对象中声明上述字段,配合 id、triggers 与异步处理函数(event、step 或 events、step)编写逻辑。

限制:资料未提供定价、平台支持细节或错误处理说明;具体语言差异需查阅 Inngest 官方文档。