Cloudflare推出了一个新的开发工具:Workflows。的持久执行引擎,目前已进入公开测试阶段。这项工具让开发者可以使用Cloudflare Workers创建稳定、可扩展的多步骤应用。Workflows通过自动重试、状态持久化和扩展等功能,简化了多步骤应用的构建。
什么是Cloudflare Workflows?
Cloudflare Workflows是一个帮助开发者创建多步骤(多流程)的应用程序的工具,具有以下特点:
- 可以承受错误和网络问题:如果在执行过程中遇到错误、网络中断或服务器崩溃,Workflows能够自动重试,并继续完成剩余任务,而不是从头开始。
- 状态持久化:当一个步骤完成时,Workflows会保存当前状态。如果下一步失败了,程序不会重头开始,而是从上次成功的步骤继续。
- 无须基础设施管理:开发者不需要自己配置服务器或存储数据库,Cloudflare会在后台处理所有这些资源,确保应用可以在全世界不同的地点运行。
Workflows如何工作?
- 多步骤流程:每个Workflow由多个步骤(step)组成,比如:读取数据、调用API、存储结果等。每个步骤都可以独立运行,如果失败了,它会自动重试几次,并在每次失败后增加延迟时间。
- 自动扩展:Workflows可以根据需要增加或减少资源,比如在使用高峰期自动扩展容量,在使用低谷时减少资源,从而控制成本。
- 状态持久化:所有步骤的状态都会保存在一个类似于数据库的存储系统中,确保即使中途失败,程序也可以恢复执行。
Cloudflare Workflows 能做什么?
Cloudflare Workflows是一种新工具,专门用于帮助开发者在Cloudflare的服务器上创建和管理复杂的多步骤应用程序。它的核心功能有以下几个方面:
- 创建持久的多步骤工作流
- Workflows允许开发者将应用程序分解成多个步骤(Steps),比如数据处理、API调用、数据库操作等。
- 每个步骤可以独立执行,并具备状态持久化和自动重试功能,这意味着即使某一步失败了,工作流也不会从头开始,而是从上次成功的步骤继续。
- 处理错误和重试机制
- Workflows自动管理重试策略。比如,如果外部API不可用或网络中断,Workflows会按照设定的策略(如增加重试延迟时间)自动重新尝试。
- 通过这些机制,开发者不需要手动编写复杂的错误处理代码,Workflows会确保流程能够在故障情况下恢复。
- 管理和持久化应用状态
- Workflows会在每个步骤完成时记录状态,即使遇到服务器崩溃或网络问题,它也可以保存当前的进度。
- 这意味着开发者可以创建长期运行的应用程序,比如多天或多个月的流程,比如等待用户输入或外部事件触发等。
4. 自动扩展和优化资源
- Workflows会根据应用的负载自动扩展或收缩资源。比如在流量高峰时,系统会自动增加计算资源;在使用量低时,系统会减少资源,从而降低成本。
- 简化复杂任务的编排
- 开发者可以利用Workflows来自动化复杂的业务流程,比如订单处理、支付确认、用户认证、电子邮件发送等。
- 无论是实时触发的任务还是长时间运行的后台作业,Workflows都能以一致和可靠的方式完成这些任务。
- 无服务器架构和低维护成本
- Workflows完全在Cloudflare的无服务器架构(Serverless)上运行,开发者不需要管理底层服务器或存储设备。
- 这不仅减少了基础设施维护的复杂性,还让应用程序能够快速部署和运行在全球范围内的Cloudflare数据中心。
举个例子
假设你想创建一个应用来处理用户上传的文件,步骤可能如下:
- 上传文件:用户将文件上传到Cloudflare R2存储。
- 处理文件:应用读取文件内容并进行文本提取。
- 调用外部API:将提取的数据发送到一个外部API进行验证。
- 保存结果:将结果保存到数据库中。
如果在第三步中API不可用,Workflows会自动重试几次。如果所有重试都失败,Workflows会保留之前的进度,确保下一次可以从失败点继续。
为什么有用?
- 更稳定:Workflows可以在各种故障情况下继续运行,比如网络中断、API不可用等。
- 节省时间和精力:开发者不需要写复杂的代码来处理各种错误情况,Workflows会自动完成这些处理。
- 简单易用:开发者只需要关注业务逻辑,后台的服务器和存储管理由Cloudflare负责。
详细介绍:https://blog.cloudflare.com/building-workflows-durable-execution-on-workers/
评论区