Ruby Flow 用户的选项 - Amazon Simple Workflow Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Ruby Flow 用户的选项

适用于 Ruby的 Amazon Flow Framework 已不再主动进行开发。现有代码仍将无限期继续运行,但不会再有新功能或新版本。本主题将介绍继续使用 Amazon SWF 的使用和迁移选项,以及有关如何迁移到 Step Functions 的信息。

选项 描述

继续使用 Ruby Flow Framework

目前,Ruby Flow Framework 将继续使用。如果您不执行任何操作,您的代码将继续按现有方式运行。计划在不久的将来从适用于 Ruby 的 Amazon Flow Framework 迁移。

迁移到 Java Flow Framework

Java Flow Framework 仍在进行积极开发,并将继续收到新功能和更新。

迁移到 Step Functions

Step Functions 可通过由状态机控制的可视化工作流程,来协调分布式应用程序的组件。

直接使用 SWF API,无需 Flow Framework 您可以直接使用 SWF API 继续在 Ruby 中工作,而无需使用 Ruby Flow Framework。

无论对于 Ruby 还是 Java,Flow Framework 提供的优势均在于,可让您专注于工作流程逻辑。该架构可处理大多数通信和协作的详细信息,并将某些复杂问题抽象化。您可以通过迁移到 Java Flow Framework 来继续使用相同级别的抽象,也可以直接与 Amazon SWF SDK 交互。

继续使用 Ruby Flow Framework

在短期内,适用于 Ruby 的 Amazon Flow Framework 将继续按原样运行。如果您有使用适用于 Ruby 的 Amazon Flow Framework 编写的工作流,它们将继续运行。在没有更新、支持或安全修复的情况下,您最好制定明确的计划,以便在不久的将来从适用于 Ruby 的 Amazon Flow Framework 迁移出来。

迁移到 Java Flow Framework

适用于 Java 的 Amazon Flow Framework 仍在积极开发中。适用于 Java 的 Amazon Flow Framework 在概念上与适用于 Ruby 的 Amazon Flow Framework 类似:您仍然可以专注于工作流逻辑,该框架将帮助您管理决策程序逻辑,并让您可以更轻松地管理 Amazon SWF 的其他方面。

迁移到 Step Functions

Amazon Step Functions 提供的服务与 Amazon SWF 类似,但工作流逻辑由状态机控制。借助 Step Functions,您可以使用可视化工作流来协调分布式应用程序和微服务的组件。您可通过能执行离散函数(或称为任务)的各单独组件构建应用程序,这样您能够快速扩展和更改应用程序。Step Functions 提供了一种可靠的方法来协调组件并逐步执行应用程序的函数。图形控制台可将应用程序的组件直观地展示为一系列步骤。它可以自动触发和跟踪各个步骤,并在出现错误时重试,因此您的应用程序每次都能按照预期顺序执行。Step Functions 会记录每个步骤的状态,这样在出现错误时,您就能够迅速诊断并调试问题。

在 Step Functions 中,您可以使用声明性 JSON 编写的状态机来管理各项任务的协调,该状态机是使用 Amazon States Language 定义的。通过使用状态机,您不必编写和维护决定程序来控制您的应用程序逻辑。Step Functions 提供了一种直观、高效且敏捷的方法来使用可视化工作流协调应用程序组件。您应考虑为所有新应用程序使用 Amazon Step Functions,Step Functions 为您当前在适用于 Ruby 的 Amazon Flow Framework 中实施的工作流提供了一个绝佳的迁移平台。

为了帮助您将任务迁移到 Step Functions,同时继续利用 Ruby 语言技能,Step Functions 提供了一个 Ruby 活动工作线程示例。该示例采用了实现活动工作线程的最佳实践,可用作将任务逻辑迁移到 Step Functions 的模板。有关更多信息,请参阅《Amazon Step Functions Developer Guide》https://docs.amazonaws.cn/step-functions/latest/dg/中的 Example Activity Worker in Ruby

注意

对于许多客户来说,从适用于 Ruby 的 Amazon Flow Framework 迁移到 Step Functions 是最佳方案。但是,如果您的进程中需要信号干预,或者您需要启动子进程将结果返回给父进程,请考虑直接使用 Amazon SWF API,或迁移到适用于 Java 的 Amazon Flow Framework。

有关 Amazon Step Functions 的更多信息,请参阅:

直接使用 Amazon SWF API

虽然适用于 Ruby 的 Amazon Flow Framework 可以管理 Amazon SWF 的部分复杂任务,但您也可以直接使用 Amazon SWF API。直接使用 API 可通过构建工作流程使您完全控制任务的执行和协作,无需担心跟踪任务进度和维持任务状态等底层复杂性。