2024 年 10 月 21 日
使用 Prisma Pulse 和 Trigger.dev 构建视频处理管道
无服务器计算使应用程序能够高效扩展,支持数百万用户。然而,它在更长的运行时间和密集型数据处理方面面临挑战,这两者对于机器学习 (ML) 应用程序都至关重要。为了解决这个问题,Pulse 和 Trigger.dev 等工具帮助开发人员创建解耦的、事件驱动的工作流程,从而促进复杂任务的有效处理。
解耦的事件驱动架构的优势
事件驱动的解耦架构提供了几个关键优势
- 可扩展性:系统可以更轻松地扩展,因为组件是独立的,允许基于需求进行单独扩展。
- 灵活性:解耦的组件可以被修改或更新,而不会影响整个系统,从而实现更快的创新和适应性。
- 弹性:一个服务的故障不一定会影响整个系统,因为组件是松散连接的,从而提高了可靠性。
- 异步处理:事件被异步处理,允许任务在后台运行,从而提高性能。
- 故障隔离:解耦的服务隔离问题,降低了跨系统级联故障的风险。
- 可维护性:关注点的明确分离允许团队独立开发和维护系统的不同部分,使架构更易于维护。
这些优势使解耦的事件驱动架构成为现代、可扩展应用程序的理想选择,特别是那些涉及复杂工作流程的应用程序,例如视频转录。
使用 Pulse 和 Trigger.dev 构建视频转录工作流程
为了演示如何应用这种架构,让我们使用 Pulse 和 Trigger.dev 构建一个视频转录工作流程。我们将创建一个系统,该系统从 URL 转录视频并将转录内容存储在数据库中。
定义数据模型
首先,考虑以下 Prisma 模型,它定义了我们如何存储视频 URL 及其转录数据
此模型将存储视频的 URL 及其相应的转录内容,一旦处理完成。
实施视频转录任务
接下来,我们将使用 Trigger.dev 设置转录任务。此脚本将获取视频 URL,提取其音频,并使用 Deepgram API 对其进行转录
在此任务中,我们首先下载视频数据并使用 ffmpeg
提取其音频。然后,我们将音频传递给 Deepgram 的转录服务,该服务处理音频并返回转录内容。最终的转录内容使用 Prisma 存储在数据库中。
当上传新视频时,我们使用 Prisma ORM 将视频 URL 保存在数据库中
触发工作流程
视频上传后,我们可以触发转录工作流程。使用 Prisma Pulse,我们监听新的视频记录并相应地触发转录任务
对已完成的转录做出反应
转录完成后,我们可以通过通知客户端或触发其他流程来对此事件做出反应。这也可以使用 Prisma Pulse 完成
这演示了如何使用这些工具高效构建端到端工作流程,从而利用解耦的事件驱动架构。
亲自尝试
现在,轮到您实施此方法,看看您可以多么轻松地将解耦的工作流程集成到您自己的项目中。尝试使用这些工具,看看它们如何简化您的开发流程。无论您是转录视频还是构建更复杂的应用程序,Pulse 和 Trigger.dev 都提供了可扩展性和灵活性来处理各种任务。
开始使用 Trigger.dev
开始使用 Pulse
如果您构建了新的东西,我们很乐意听到。与我们分享您的经验,并通过 X 和 我们的更新日志 了解我们的最新更新。需要帮助?加入我们的 Discord 社区,您可以在那里提问并与其他开发人员联系。
不要错过下一篇文章!
注册 Prisma Newsletter