inngest/inngest
GitHub: inngest/inngest
开源的工作流编排平台,用持久化函数替代传统队列和状态管理,支持多语言 SDK 和自托管。
Stars: 4974 | Forks: 265
# [](https://www.inngest.com)
[](https://github.com/inngest/inngest/releases)
[](https://github.com/inngest/inngest/actions?query=branch%3Amain)
[](https://www.inngest.com/discord)
[](https://twitter.com/inngest)
[Inngest](https://www.inngest.com/?ref=github-inngest-readme) 的持久化函数取代了队列、状态管理和调度,使任何开发者都能在不接触基础设施的情况下,更快地编写可靠的步骤函数。
1. 使用我们的任意 [**语言 SDK**](#sdks) 编写持久化函数
2. 运行 [**Inngest Dev Server**](#getting-started) 以获得具有生产环境一致性的完整本地开发体验。
3. 将您的函数部署到您自己的基础设施
4. 将您的应用程序函数与 [**Inngest Platform**](https://www.inngest.com/?ref=github-inngest-readme) 或 [自托管 Inngest 服务器](#self-hosting) 同步。
5. 每当接收到触发事件时,Inngest 即通过 HTTPS 安全地调用您的函数。
### 持久化函数示例
Inngest Functions 使开发者能够运行可靠的后台逻辑,从后台任务到复杂的工作流。一个 Inngest Function 由三个关键部分组成,为重试、调度和协调复杂的操作序列提供了强有力的支持:
- [**触发器 (Triggers)**](https://www.inngest.com/docs/features/events-triggers?ref=github-inngest-readme) - 触发函数的事件、Cron 调度或 Webhook 事件。
- [**流控制 (Flow Control)**](https://www.inngest.com/docs/guides/flow-control?ref=github-inngest-readme) - 配置函数运行的入队和执行方式,包括并发、节流、防抖、速率限制和优先级。
- [**步骤 (Steps)**](/docs/features/inngest-functions/steps-workflows?ref=github-inngest-readme) - 步骤是 Inngest 的基础构建块,可将您的 Inngest Functions 转化为可靠的工作流,这些工作流可以运行数月并能从故障中恢复。
以下是一个函数示例,它限制了每个唯一用户 ID 的并发性,并执行两个在出错时会重试的步骤:
```
export default inngest.createFunction(
{
id: "import-product-images",
concurrency: {
key: "event.data.userId",
limit: 10
}
},
{ event: "shop/product.imported" },
async ({ event, step }) => {
// Here goes the business logic
// By wrapping code in steps, each will be retried automatically on failure
const s3Urls = await step.run("copy-images-to-s3", async () => {
return copyAllImagesToS3(event.data.imageURLs);
});
// You can include numerous steps in your function
await step.run("resize-images", async () => {
await resizer.bulk({ urls: s3Urls, quality: 0.9, maxWidth: 1024 });
})
};
);
// Elsewhere in your code (e.g. in your API endpoint):
await inngest.send({
name: "shop/product.imported",
data: {
userId: "01J8G44701QYGE0DH65PZM8DPM",
imageURLs: [
"https://useruploads.acme.com/q2345678/1094.jpg",
"https://useruploads.acme.com/q2345678/1095.jpg"
],
},
});
```
## 了解更多
- [入门指南](#getting-started)
- [SDK](#sdks)
- [项目架构](#project-architecture)
- [自托管](#self-hosting)
- [社区](#community)
## 入门指南
使用我们的 CLI 运行 Inngest Dev Server:
```
npx inngest-cli@latest dev
```
在 http://localhost:8288 打开 Inngest Dev Server 仪表板:

请遵循我们的 [Next.js](https://www.inngest.com/docs/getting-started/nextjs-quick-start?ref=github-inngest-readme)、[Node.js](https://www.inngest.com/docs/getting-started/nodejs-quick-start?ref=github-inngest-readme) 或 [Python](https://www.inngest.com/docs/getting-started/python-quick-start?ref=github-inngest-readme) 快速入门指南。
## SDK
- **TypeScript / JavaScript** ([inngest-js](https://github.com/inngest/inngest-js)) - [参考文档](https://www.inngest.com/docs/reference/typescript?ref=github-inngest-readme)
- **Python** ([inngest-py](https://github.com/inngest/inngest-py)) - [参考文档](https://www.inngest.com/docs/reference/python?ref=github-inngest-readme)
- **Go** ([inngestgo](https://github.com/inngest/inngestgo)) - [参考文档](https://pkg.go.dev/github.com/inngest/inngestgo)
- **Kotlin / Java** ([inngest-kt](https://github.com/inngest/inngest-kt))
## 项目架构
要了解自托管的工作原理,从宏观层面了解架构和系统组件是很有价值的。我们将查看一个简化的架构图并介绍该系统。
## 自托管 自托管 Inngest 服务器是可能的,而且很容易上手。在[我们的文档指南](https://www.inngest.com/docs/self-hosting?ref=github-inngest-readme)中了解更多关于自托管 Inngest 的信息。 ## 许可证 Inngest 服务器和 CLI 基于 Server Side Public License 以及 Apache 2.0 下的延迟开源发布 (DOSP) 提供。[在此查看许可证](/LICENSE.md)。 所有 Inngest [SDK](#sdks) 均基于 Apache 2.0 许可证提供。
## 自托管 自托管 Inngest 服务器是可能的,而且很容易上手。在[我们的文档指南](https://www.inngest.com/docs/self-hosting?ref=github-inngest-readme)中了解更多关于自托管 Inngest 的信息。 ## 许可证 Inngest 服务器和 CLI 基于 Server Side Public License 以及 Apache 2.0 下的延迟开源发布 (DOSP) 提供。[在此查看许可证](/LICENSE.md)。 所有 Inngest [SDK](#sdks) 均基于 Apache 2.0 许可证提供。
标签:Cron 作业, DevOps 工具, EVTX分析, EVTX分析, Go 语言, TypeScript, Webhook, 事件驱动架构, 人工智能工作流, 任务队列, 分布式系统, 力导向图, 后台任务, 响应大小分析, 子域名突变, 安全插件, 工作流编排, 开源, 持久化函数, 数据可视化, 日志审计, 步骤函数, 测试用例, 状态管理, 自托管, 请求拦截, 边缘计算, 逆向工具, 重试机制