Inngest-js 开源项目教程
1、项目介绍
Inngest-js 是一个用于构建可靠工作流的开发者平台,特别适用于 TypeScript 和 JavaScript 项目。它结合了持久执行、事件和队列,帮助开发者轻松构建可靠的工作流,而无需管理任何基础设施。Inngest-js 支持多种框架,如 Next.js、Redwood、Express、Cloudflare Pages、Nuxt、Fresh (Deno) 和 Remix,并且可以部署在多个平台上,如 Vercel、Netlify、Cloudflare、Deno、Digital Ocean 等。
2、项目快速启动
安装 Inngest-js
首先,你需要在你的项目中安装 Inngest-js:
npm install inngest
创建一个 Inngest 实例
在你的项目中创建一个 Inngest 实例,并定义一个函数:
import { Inngest } from "inngest";
const inngest = new Inngest({ id: "my-app" });
const myFunction = inngest.createFunction(
"app/user signup",
async ({ event }) => {
console.log("User signed up:", event.data.email);
}
);
使用 Next.js 适配器服务函数
使用 Next.js 适配器来服务你的 Inngest 函数:
import { serve } from "inngest/next";
export default serve(inngest, [myFunction]);
发送事件触发函数
你可以通过发送事件来触发你的函数:
inngest.send("app/user signup", {
data: {
email: "text@example.com",
user_id: "12345",
},
});
3、应用案例和最佳实践
用户注册通知
在用户注册时,自动发送欢迎邮件:
const userSignupFunction = inngest.createFunction(
"app/user signup",
async ({ event }) => {
// 发送欢迎邮件
sendWelcomeEmail(event.data.email);
}
);
定期任务
创建一个定期任务,每天清理未使用的资源:
const dailyCleanupFunction = inngest.createFunction(
"app/daily cleanup",
"0 0 * * *", // 每天午夜执行
async () => {
// 清理未使用的资源
cleanupUnusedResources();
}
);
4、典型生态项目
Next.js
Inngest-js 与 Next.js 无缝集成,可以轻松处理后台任务和事件驱动的工作流。
Express
对于 Express 应用,Inngest-js 提供了适配器,使得在 Express 中使用 Inngest 变得非常简单。
Cloudflare Pages
Inngest-js 支持 Cloudflare Pages,使得在 Cloudflare 平台上构建和部署事件驱动的工作流变得容易。
Remix
Remix 是一个现代的全栈框架,Inngest-js 可以与 Remix 结合,提供强大的后台任务处理能力。
通过以上教程,你可以快速上手 Inngest-js,并利用其强大的功能构建可靠的工作流。